确定性地递归迭代目录结构

时间:2014-12-18 18:49:42

标签: recursion filesystems

我有一个静态目录结构作为输入。我的程序从根开始并递归迭代并将文件名列为输出。我的问题是文件名输出列表的顺序是否在我的程序的多次运行中保持不变。我凭经验观察到它确实保持不变。但这是编程语言(比方说java)还是操作系统(我使用的是linux)的保证。

1 个答案:

答案 0 :(得分:0)

这取决于几件事:

  1. 您使用什么方法读取目录(ls按字母顺序排序,readdir()按目录顺序抓取)
  2. 是否在运行之间创建/删除文件名。这往往会让你搞砸任何文件系统。
  3. 您正在使用的文件系统(默认情况下,ext2会为您提供稳定的订单。ext4,其中包含开箱即用的目录哈希值。{/ li >

    通常,无法保证目录条目的顺序在运行之间是稳定的。如果订单很重要,最好在阅读后对目录进行排序。