java文件。exists(path)为false,但为file。exists()为true
为什么这个代码返回false
Path path = Paths.get("C:\\aaa\\bbb\\ccc");
Files.exists(path); // false!?
即使我从文件(存在)转换为它:
File file = new File("C:\\aaa\\bbb\\ccc");
file.exists(); // true!!!
Path path = file.toPath();
Files.exists(path); // still false!?
# 1 楼答案
在以下具体情况下,我能够重现这一点:
我在Linux(Centos 6)上测试了这一点,即使在更改目录(即
chmod -x /aaa/bbb/ccc
或chmod -r /aaa/bbb/ccc
)上的文件模式时也无法复制它因此,这似乎只发生在Windows上。关于Windows上的文件权限,
java.io
和java.nio.file
如何实现存在性测试,两者之间肯定存在一些差异检查目录上的权限
这可能是一个值得报告的bug