java.nio.file Files.isWritable не работает с сетевыми общими дисками - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть 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-программой я не могу.enter image description here

...