gpt4 book ai didi

java - Files.exists(path) 为假,但 file.exists() 为真

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:59:41 29 4
gpt4 key购买 nike

为什么这段代码返回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. 操作系统是 Windows(由路径语法暗示)
  2. 路径指的是一个目录
  3. 该目录是只读的,或者用户没有“列出文件夹内容”权限。

我在 Linux (Centos 6) 上对此进行了测试,即使更改目录上的文件模式(即 chmod -x/aaa/bbb/cccchmod -r/aaa/bbb/ccc)

所以这似乎只发生在 Windows 上。 java.iojava.nio.file 在 Windows 上实现文件权限存在性测试的方式肯定存在一些差异。

检查目录的权限。

可能是一个值得报告的错误。

关于java - Files.exists(path) 为假,但 file.exists() 为真,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57282130/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com