这个问题的答案是B和C.我理解为什么B是答案之一,但我不明白为什么C也是正确的。
有人可以解释为什么C是正确的吗?
答案 0 :(得分:2)
目录中的条目不会以任何特定顺序遍历。
B是在x / a
C是在x / y之前访问x / a
两者都是可能的,因为相关的javadoc对访问目录条目的顺序没有任何限制。 (没有提到这个问题。)
Java教程says:
“首先深度浏览文件树,但是您无法对访问子目录的迭代顺序做出任何假设。”
强调补充。
实际上,如果未更新父目录(x),则遍历顺序将是确定性的。它通常取决于目录条目在磁盘上的存储顺序。
另请注意,您通常不会注意到这一点,因为命令行实用程序(例如ls
和shell本身)通常会在显示目录条目名称之前对其进行排序。