gpt4 book ai didi

java - File.listFiles() 和区分物理文件夹和虚拟文件夹

转载 作者:可可西里 更新时间:2023-11-01 09:31:44 28 4
gpt4 key购买 nike

File.listFiles() 方法列出文件夹的内容。然而,在 Windows 上,当您在根驱动器上调用该方法时,它还会产生一些 - 缺少更好的短语 - “虚拟”文件夹(如“文档和设置”,在最近的 Windows 版本中被“用户”取代) .

如果您随后为那些“虚拟”文件夹之一调用 listFiles(),它总是返回 null。这就是我的问题所在,因为我想递归遍历所有文件夹。我需要一种方法来过滤掉这些文件夹,最好不要通过检查它们的名称...

还有一些普通用户看不到的其他文件夹(例如“系统卷信息”或该驱动器的回收站文件夹),我很乐意找到一种方法将它们过滤掉好吧,没有将名字列入黑名单。

不幸的是,这些文件夹的行为就像真实文件夹一样。我要找的是类似 File.isSystemFolder() 的方法。

非常感谢您的建议

最佳答案

您可以通过测试 File#isHidden() 来过滤那些隐藏的系统文件夹返回 true

我不确定“虚拟”文件夹。我认为只有使用 New IO 2 才能区分它们即将在 Java 7 中推出。我必须先在 Vista/Win7 机器上检查一下(我目前使用的是 XP)。


更新:我在我们的 2K3 服务器上做了一个快速测试,Documents and Settings 默认情况下也为 File 返回 true #isHidden()Users 则不需要。您也可以利用它。

关于java - File.listFiles() 和区分物理文件夹和虚拟文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3158237/

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