web-dev-qa-db-fra.com

java.io.FileNotFoundException: (l'accès est refusé)

J'essaie de lire les fichiers dans un dossier, mais lorsque je lance le programme, cette exception est levée. 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)
43
John

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

41
rsp
  1. vérifier la réponse du rsp
  2. vérifier que vous avez l'autorisation de lire le fichier
  3. vérifie si le fichier n'est pas verrouillé par une autre application. C'est pertinent surtout 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
5
AlexR

Dans certains cas, il est également important de vérifier autorisations du dossier cible. Donner une permission en écriture à l'utilisateur pourrait être la solution. Cela a fonctionné pour moi.

2
Thales Valias

Voici un casse-tête que je viens de découvrir - cela pourrait peut-être aider quelqu'un d'autre. Si vous utilisez Windows, le cryptage du dossier de classes ne doit pas être activé! Tomcat ne semble pas aimer ça. Faites un clic droit sur le dossier des classes, sélectionnez "Propriétés" puis cliquez sur le bouton "Avancé ...". Assurez-vous que la case "Crypter le contenu pour sécuriser les données" est désélectionnée. Redémarrez Tomcat.

Cela a fonctionné pour moi, alors voici en espérant que cela aide aussi quelqu'un d'autre.

2
rexthestrange