Question

Je suis en train de lire les fichiers dans un dossier, mais quand je lance le programme, il lance cette exception. J'ai essayé avec d'autres dossiers aussi. Il jette la même exception.

Exception in thread "main" java.io.FileNotFoundException: C:\backup (Access is denied)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(Unknown Source)
Était-ce utile?

La solution

Vous ne pouvez pas ouvrir et lire un répertoire, utilisez les méthodes de isFile() et isDirectory() de distinguer entre les fichiers et les dossiers. Vous pouvez obtenir le contenu des dossiers en utilisant les méthodes de list() et listFiles() (pour les noms de fichiers et Files respectivement), vous pouvez également spécifier un filtre qui sélectionne un sous-ensemble des fichiers répertoriés.

Autres conseils

  1. vérifier la réponse du rsp
  2. Vérifiez que vous disposez des autorisations de lire le fichier
  3. vérifier si le fichier est pas verrouillée par une autre application. Il est surtout utile si vous êtes sur Windows. par exemple, je pense que vous pouvez obtenir l'exception si vous essayez de lire le fichier alors qu'il est ouvert dans le bloc-notes

En outre, dans certains cas est important de vérifier le dossier cible autorisations . Pour donner l'autorisation d'écriture pour l'utilisateur pourrait être la solution. Cela a fonctionné pour moi.

Voici une Gotcha que je viens de découvrir - peut-être que cela pourrait aider quelqu'un d'autre. Si vous utilisez Windows les classes dossier ne doit pas avoir le chiffrement activé! Tomcat ne semble pas comme ça. Faites un clic droit sur les classes dossier, sélectionnez le bouton « Propriétés » puis cliquez sur l'onglet « Avancé ... ». Assurez-vous que la case « Crypter le contenu pour sécuriser les données » sont effacées. Redémarrez Tomcat.

Il a travaillé pour moi, donc ici espère qu'il aide quelqu'un d'autre aussi.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top