gpt4 book ai didi

java - 遍历文件系统时出现空指针异常。 Java似乎找到了隐藏的文件夹,但不返回它们是这样的

转载 作者:行者123 更新时间:2023-12-01 12:48:16 24 4
gpt4 key购买 nike

我正在尝试在文件系统上查找某些内容,因此我正在挖掘计算机上的所有文件系统。然而,我遇到了很多麻烦。 Java 不断地寻找这些 super 隐藏的目录(由于缺乏更好的术语)。这意味着,即使将隐藏文件设置为显示,它们也不会显示在 Windows 资源管理器中。一旦 Java 遇到这些隐藏文件夹之一,它就会感到困惑并抛出空指针异常。

有谁经历过这种情况,知道这些隐藏文件夹是什么,或者如何解决它们?

举个例子,当前破坏我的脚本的文件夹是

C:\Users\Public\Videos  

就像我提到的,这个文件夹对于资源管理器来说是不可见的。 Java好像不知道怎么处理。

作为实验,我从路径创建了一个文件,并执行了一些探索性命令。

File mysteryFile = new File("C:\\Users\\Public\\Videos") 
System.out.println(mysteryFile.exists())
>>> true

System.out.println(mysteryFile.isHidden())
>>> false // so confusing!

Files.isReadable(Paths.get(mysteryFile.getAbsolutePath()))
>>> true

有人知道这是怎么回事吗?

最佳答案

Windows 在底层使用“英文文件夹名称”。 Windows 资源管理器将根据操作系统的语言重命名文件夹 C:\Users\Public\Videos

例如,在德国系统上,它将显示为C:\Benutzer\Öffentlich\Öffentliche Videos

请注意,有很多文件夹遵循此行为。

但无论它在 Windows 资源管理器中如何显示 - 它的路径都是C:\Users\Public\Videos

如果您点击WIN-KEY + R并输入C:\Users\Public\Videos - 它将打开相关的目标目录。

关于java - 遍历文件系统时出现空指针异常。 Java似乎找到了隐藏的文件夹,但不返回它们是这样的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24472098/

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