(背景)
我正在使用 Java.io.File
做一些windows目录搜索。基本上用户输入一个目录路径,我用 file.isDirectory()
验证路径.如果路径无效,我会要求用户重新输入正确的路径。获得有效目录后,我将继续进行其他文件操作。
(问题)
现在问题出现在用户进入根目录时。例如,e:
.在这种情况下 file.list()
提供以下输出 [.classpath, .project, .settings, bin, src]
.
如您所见,这不包括任何文件夹。
但是如果他输入 e:\
然后 file.list()
也获取现有目录 [$RECYCLE.BIN, <some directories>, <some files>, RECYCLER, System Volume Information]
这次我们没有类路径、项目等,但同时 e:
和 e:\
被认为是有效的目录。
1) 谁能解释一下这种奇怪的行为?
2) 此外,为避免此问题,是否有比为 x:
添加脏手动检查更好的方法?并将其转换为 x:\
?
最佳答案
我希望某些东西将 "e:"
解释为卷 e: 的当前目录(可能不是根目录)。陈峰recently covered the history这类事情。
关于java - 使用 Java.io.File 列出目录内容时的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3948751/