web-dev-qa-db-fra.com

Java - L'accès est refusé. Java.io.FileNotFoundException

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'essaye de sauvegarder 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 ce problème? J'ai lu et écrit l'autorisation sur ce dossier.

36
Jåcob

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

Essayez avec quelque chose comme

File file = new File("D:/Data/" + item.getFileName());
63
Julien

Pas exactement le cas de cette question mais peut être utile. J'ai eu cette exception quand j'appelle mkdirs () sur un 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();
} 
19
yurin

J'ai cherché ce problème et j'ai obtenu les réponses suivantes:

  1. "C:\Program Files\Apache-Tomcat-7.0.69\" supprime la barre oblique inverse supplémentaire (\)
  2. Cliquez avec le bouton droit de la souris sur le dossier de journalisation dans le dossier Tomcat et dans l’onglet Sécurité, attribuez-lui le droit d’écriture, puis redémarrez Net-Beans en tant qu’administrateur.

Votre problème sera résolu

6
user5855037

Vous devez définir une autorisation pour les contrôles utilisateur.

  1. Aller à C:\Program Files \
  2. Cliquez avec le bouton droit de la souris sur le dossier Java, sélectionnez Propriétés. Sélectionnez l'onglet Sécurité.
  3. Là, cliquez sur le bouton "Editer", ce qui ouvrira la fenêtre PERMISSIONS FOR Java window.
  4. Cliquez sur Ajouter, ce qui ouvrira une nouvelle fenêtre. Dans ce champ, dans la zone "Entrez le nom de l'objet", entrez le nom de votre compte d'utilisateur, puis cliquez sur OK (s'il existe déjà, ignorez cette étape).
  5. Maintenant, dans la fenêtre "PERMISSIONS DE Java", vous verrez plusieurs options cliquables comme CREATOR OWNER, SYSTEM, parmi lesquelles se trouve votre nom d'utilisateur. Cliquez dessus et cochez l'option FULL CONTROL dans Permissions for sub window.
  6. Enfin, cliquez sur Appliquer et d'accord.
4
Subrata

Assurez-vous que le répertoire existe, vous avez la permission d'y accéder et ajoutez le fichier au chemin pour écrire le journal:

File file = new File("D:/Data/" + item.getFileName());
4
Stepan