2014-12-18 97 views
0

我有一個靜態目錄結構作爲輸入。我的程序從根開始遞歸迭代並列出文件名作爲輸出。我的問題是文件名輸出列表的排序是否在我的程序的多次運行中保持不變。我經驗地觀察到,它保持不變。但是,這是編程語言(可以說,Java)或操作系統(我使用Linux)的保證。確定遞歸遍歷目錄結構

+0

當我提到靜態目錄結構時,我正在使用的是一個容器,它創建爲某人筆記本電腦的快照,並在另一臺計算機上以只讀方式安裝。所以它在運行之間不會改變。如果能保證運行之間的文件確定性列表,我願意使用ext2。 – ryk

回答

0

這取決於兩件事情:

  1. 您使用的閱讀目錄,用什麼方法(ls按字母順序排序,在目錄順序readdir()抓鬥)
  2. 是否正在創建的文件名/運行之間刪除。這往往會把你搞砸任何文件系統。
  3. 你正在使用什麼文件系統(默認情況下,ext2會給你一個穩定的訂單。ext4,它帶有開箱即用的目錄哈希,不會)。

通常,不能保證目錄條目的順序在運行之間穩定。如果訂單很重要,最好在閱讀後對目錄進行排序。