Ik heb de volgende code:
List<FileItem> items = uploadHandler.parseRequest(request);
for (FileItem item : items) {
if (!item.isFormField()) {
File file = new File("D:/Data");
}
}
Als ik een bestand probeer op te slaan, krijg ik de volgende foutmelding
java.io.FileNotFoundException: D:\Data (Access is denied.)
Wat kan de reden zijn en hoe kan ik dit oplossen? Ik heb lees- en schrijfrechten voor deze map.
Antwoord 1, autoriteit 100%
Als je een nieuw File
aanmaakt, moet je de bestandsnaam opgeven, niet alleen de map waarin je je bestand wilt plaatsen.
Probeer iets als
File file = new File("D:/Data/" + item.getFileName());
Antwoord 2, autoriteit 24%
Niet helemaal het geval bij deze vraag, maar kan nuttig zijn.
Ik kreeg deze uitzondering toen ik mkdirs() aanroep op een nieuw bestand in plaats van op het bovenliggende bestand
File file = new java.io.File(path);
//file.mkdirs(); // wrong!
file.getParentFile().mkdirs(); // correct!
if (!file.exists()) {
file.createNewFile();
}
Antwoord 3, autoriteit 8%
Ik heb naar dit probleem gezocht en kreeg de volgende antwoorden:
"C:\Program Files\Apache-tomcat-7.0.69\"
verwijder de extra backslash (\
)- Klik met de rechtermuisknop op de logmap in de map Tomcat en geef deze map in het tabblad Beveiliging een schrijfmachtiging en start de net-beans opnieuw op als een run als administrator.
Uw probleem zal worden opgelost
Antwoord 4, autoriteit 6%
U moet toestemming voor de gebruikersinstellingen instellen.
- Ga naar C:\Program Files\
- Klik met de rechtermuisknop op de java-map, klik op eigenschappen. Selecteer het tabblad Beveiliging.
- Klik daar op de knop “Bewerken”, waardoor het venster MACHTIGINGEN VOOR JAVA verschijnt.
- Klik op Toevoegen, waarna een nieuw venster verschijnt. Daarin, in het vak “Voer objectnaam in”, voer uw gebruikersaccountnaam in en klik op
oke (als deze al bestaat, sla deze stap dan over). - In het venster “MACHTIGINGEN VAN JAVA” ziet u verschillende klikbare
opties zoals CREATOR EIGENAAR, SYSTEEM, waaronder uw
gebruikersnaam. Klik erop en vink de optie VOLLEDIGE CONTROLE aan in
Rechten voor subvenster. - Tot slot, druk op toepassen en oké.
Antwoord 5, autoriteit 5%
Zorg ervoor dat de map bestaat, dat u toestemming hebt om deze te openen en voeg het bestand toe aan het pad om het logboek te schrijven:
File file = new File("D:/Data/" + item.getFileName());