2014-12-18 99 views
0

我有一个静态目录结构作为输入。我的程序从根开始递归迭代并列出文件名作为输出。我的问题是文件名输出列表的排序是否在我的程序的多次运行中保持不变。我经验地观察到,它保持不变。但是,这是编程语言(可以说,Java)或操作系统(我使用Linux)的保证。确定递归遍历目录结构

+0

当我提到静态目录结构时,我正在使用的是一个容器,它创建为某人笔记本电脑的快照,并在另一台计算机上以只读方式安装。所以它在运行之间不会改变。如果能保证运行之间的文件确定性列表,我愿意使用ext2。 – ryk

回答

0

这取决于两件事情:

  1. 您使用的阅读目录,用什么方法(ls按字母顺序排序,在目录顺序readdir()抓斗)
  2. 是否正在创建的文件名/运行之间删除。这往往会把你搞砸任何文件系统。
  3. 你正在使用什么文件系统(默认情况下,ext2会给你一个稳定的订单。ext4,它带有开箱即用的目录哈希,不会)。

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