java.nio.file Files.isWritable无法使用网络共享驱动器

java.nio.file Files.isWritable无法使用网络共享驱动器,java,java.nio.file,Java,Java.nio.file,我有一个java应用程序,可以在给定的位置编写文件。 在写入之前,我将使用文件检查提供的路径是否可写。isWritable(path) 当用户提供网络共享驱动器中存在的文件夹路径时。 然后获取AccessDeniedException 不知道发生了什么,我错过了什么。因为我可以在共享驱动器上创建/编辑/删除文件和文件夹 但java应用程序无法做到这一点 在寻找答案时,我发现了这一点 不知道是否与我的问题有关 谁能帮我解决这个问题,告诉我出了什么问题 还与网络团队进行了核实。我对共享驱动器具有完全

我有一个java应用程序,可以在给定的位置编写文件。 在写入之前,我将使用文件检查提供的路径是否可写。isWritable(path)

当用户提供网络共享驱动器中存在的文件夹路径时。 然后获取AccessDeniedException

不知道发生了什么,我错过了什么。因为我可以在共享驱动器上创建/编辑/删除文件和文件夹

但java应用程序无法做到这一点

在寻找答案时,我发现了这一点 不知道是否与我的问题有关

谁能帮我解决这个问题,告诉我出了什么问题

还与网络团队进行了核实。我对共享驱动器具有完全读写权限

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;
    }
}
附上图片。因此,基本上我无法在4个共享驱动器(即I/O/R/S驱动器)中创建文件,但我可以在C/D驱动器中创建文件。手动操作我可以,但使用java程序我不能。

请指定:哪个客户端操作系统?哪个服务器操作系统?哪种类型的网络共享?只需取消测试。当您实际需要写入文件时,如果无法打开文件进行写入,则会抛出
IOException
,该异常会告诉您完全相同的情况,更加可靠,并且不会出现此代码的误报和计时窗口问题。一般来说,判断任何资源是否可用于任何用途的最佳方法是尝试以这种方式使用它,并在出现错误或异常时处理它们。“你在这里从事的工作基本上就是预测未来。”RemigiusStalder的Window7 enterprise。关于网络共享,请与网络团队联系一次。因为我使用的系统不在我的位置,它在客户端位置,我们远程使用它。因此,关于网络共享的详细信息将需要一些时间。你说你不确定你提到的bug报告是否与你的问题有关。那个bug报告涉及到被替换的驱动器。您正在使用SUBST吗?无法复制此问题。对我来说,isWritable的行为与预期的一样:
Files.isWritable(path.get(“\\\\server\\Share\\MyFolder”)
返回true,而
Files.isWritable(path.get(“\\\\server\\Share\\TheCEOsFolder”)
返回false。您的确切路径规范是什么?也许你指定它的方式有错误。