Java FileVisitor以什么顺序工作

时间:2015-01-04 04:57:08

标签: data-structures java-io filevisitor

这个问题的答案是B和C.我理解为什么B是答案之一,但我不明白为什么C也是正确的。

有人可以解释为什么C是正确的吗?

enter image description here

1 个答案:

答案 0 :(得分:2)

目录中的条目不会以任何特定顺序遍历。

  • B是在x / a

  • 之前访问x / y的遍历
  • C是在x / y之前访问x / a

  • 的遍历

两者都是可能的,因为相关的javadoc对访问目录条目的顺序没有任何限制。 (没有提到这个问题。)

Java教程says

  

“首先深度浏览文件树,但是您无法对访问子目录的迭代顺序做出任何假设。

强调补充。


实际上,如果未更新父目录(x),则遍历顺序将是确定性的。它通常取决于目录条目在磁盘上的存储顺序。

另请注意,您通常不会注意到这一点,因为命令行实用程序(例如ls和shell本身)通常会在显示目录条目名称之前对其进行排序。