У меня есть Java-приложение, которое пишет файлы в указанном месте.Перед тем как писать, я проверяю, можно ли записать указанный путь, используя Files.isWritable (path) .
Когда пользователь указывает путь к папке, которая присутствует на сетевом общем диске.Затем получаю AccessDeniedException .
Не знаю, что происходит, я что-то упустил.Потому что я могу создавать / редактировать / удалять файлы и папки на общем диске.
Но с помощью Java-приложения это сделать невозможно.
При поиске какого-либо ответа нашел это https://bugs.openjdk.java.net/browse/JDK-8034057 Не знаю, связано ли это с моей проблемой.
Может кто-нибудь помочь мне с этой проблемой и сказать, что происходит не так.
Также проверил с сетевой командой.У меня есть полное разрешение на чтение на общем диске.
Java версия 1.8.0_191
ОС - Win 7 enterprise
Это мой код для проверки
private static boolean isWritable(Path path)
{
if(Files.isWritable(path))
{
return true;
}
else
{
try (FileChannel fc = FileChannel.open(path, StandardOpenOption.WRITE))
{
// NOP
}
catch(IOException e)
{
if(LOGGER.isDebugEnabled())
{
LOGGER.debug("", e);
}
return false;
}
return true;
}
}
Прикрепленное изображение.Поэтому я не могу создать файл ни на одном из четырех общих дисков, т. Е. На дисках I / O / R / S, но я могу создавать на диске C / D.Вручную я могу, но с Java-программой я не могу.