Z jakiegoś powodu otrzymuję java.nio.file.AccessDeniedException
za każdym razem, gdy próbuję pisać do folderu na moim komputerze za pomocą aplikacji webowej java na Tomcat. Ten folder ma uprawnienia do pełnej kontroli dla wszystkich na moim komputerze (Windows). Czy ktokolwiek wie, dlaczego dostaję ten wyjątek?Uzyskiwanie "java.nio.file.AccessDeniedException" podczas próby zapisu do folderu
Oto mój kod:
public void saveDocument(String name, String siteID, byte doc[]) {
try {
Path path = Paths.get(rootDirectory + siteID);
if (Files.exists(path)) {
System.out.println("Exists: " + path.toString());
Files.write(path, doc);
} else {
System.out.println("DOesn't exist");
throw new Exception("Directory for Site with ID " + siteID + "doesn't exist");
}
} catch (FileSystemException e) {
System.out.println("Exception: " + e);
e.printStackTrace();
} catch (IOException e) {
System.out.println("Exception: " + e);
e.printStackTrace();
} catch (Exception e) {
System.out.println("Exception: " + e);
e.printStackTrace();
}
I tu jest błąd:
Exception: java.nio.file.AccessDeniedException: C:\safesite_documents\site1 java.nio.file.AccessDeniedException: C:\safesite_documents\site1 at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:83) at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97) at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102) at sun.nio.fs.WindowsFileSystemProvider.newByteChannel(WindowsFileSystemProvider.java:230) at java.nio.file.spi.FileSystemProvider.newOutputStream(FileSystemProvider.java:430) at java.nio.file.Files.newOutputStream(Files.java:172) at java.nio.file.Files.write(Files.java:3092)
spróbować napisać do folderu w innym napędzie i sprawdzić. – Prashant
Nie działa z innym dyskiem lub innym folderem Jedno może być to, że wszystkie moje foldery na moim komputerze są oznaczone jako "Tylko do odczytu". Tylko gdy je odznaczam, po ponownym sprawdzeniu, po prostu zostaną ponownie sprawdzone po: – OneTwo
@OneTwo, Czy jest jakaś możliwość, że ta sama ścieżka jest używana przez jakikolwiek inny kod.Jak tam, gdzie masz dostęp do tej samej ścieżki i zapomnij zwolnić zasoby: – Amogh