L'accès à Java est refusé.io.FileNotFoundException [dupliquer]

cette question a déjà une réponse ici:

j'ai le code suivant:

List<FileItem> items = uploadHandler.parseRequest(request);
for (FileItem item : items) {
    if (!item.isFormField()) {
        File file = new File("D:/Data");
    }
}

Lorsque j'essaie d'enregistrer un fichier, j'obtiens l'erreur suivante

java.io.FileNotFoundException: D:Data (Access is denied.)

quelle pourrait être la raison et comment puis-je résoudre cela? J'ai la permission de lire et d'écrire dans ce dossier.

26
demandé sur Jacob 2013-10-24 12:58:41

5 réponses

Lorsque vous créez un nouveau File , vous êtes censé fournir le nom du fichier, pas seulement le répertoire dans lequel vous voulez mettre votre fichier.

Essayez quelque chose comme

File file = new File("D:/Data/" + item.getFileName());
49
répondu Julien 2018-06-30 17:45:55

Pas exactement le cas de cette question, mais peut être utile. J'ai eu cette exception quand j'ai appelé mkdirs () sur le nouveau fichier au lieu de son parent

File file = new java.io.File(path);
//file.mkdirs(); // wrong! 
file.getParentFile().mkdirs(); // correct!
if (!file.exists()) {
    file.createNewFile();
} 
16
répondu yurin 2018-01-08 23:20:17

je recherche ce problème et j'ai obtenu les réponses suivantes:

  1. "C:\Program Files\Apache-tomcat-7.0.69\" supprimer l'antislash supplémentaire ( \ )
  2. cliquez avec le bouton droit de la souris sur le dossier log dans le dossier tomcat et dans l'onglet sécurité pour donner à ce dossier la permission d'écrire, puis redémarrez net-beans en tant qu'administrateur.

votre problème sera résolu

5
répondu Lonely Neuron 2018-01-08 23:22:32

vous devez définir la permission pour les contrôles d'utilisateur .

  1. Goto C:\Program Files\
  2. clic droit dossier java, cliquez Propriétés. Sélectionnez l'onglet sécurité.
  3. là, cliquez sur le bouton" Edit", qui affichera les PERMISSIONS pour la fenêtre JAVA.
  4. cliquez sur Ajouter, qui ouvrira une nouvelle fenêtre. Dans ce cas, dans la case "entrer le nom de l'objet", entrez le nom de votre compte d'utilisateur, et cliquez d'accord(si déjà existent, sautez cette étape).
  5. maintenant dans la fenêtre "PERMISSIONS de JAVA", vous verrez plusieurs cliquables options comme créateur propriétaire, système, parmi eux est votre utilisateur. Cliquez dessus et cochez l'option de contrôle Les autorisations pour les sous-fenêtre.
  6. enfin, appuyez sur apply et OK.
4
répondu Subrata 2015-10-25 10:44:14

assurez-vous que le répertoire existe, vous avez l'autorisation d'accéder et d'ajouter le fichier dans le chemin d'écrire le journal:

File file = new File("D:/Data/" + item.getFileName());
4
répondu Stepan 2018-01-08 23:19:29