2009-11-20 51 views
0

我在C中使用dirent & stat獲取了文件和文件夾的列表,但它們不是我想要的順序。我希望它會先列出目錄然後再​​列出文件。 例如:對文件和文件夾重新排序

. 
.. 
[dir1] 
[dir2] 
[file1] 
[file2] 

有沒有辦法用的dirent做到這一點?或者我不想手動排列輸出列表。 謝謝。

回答

0

在目錄中進行兩次通過,第一次只顯示目錄,第二次只顯示文件。如果你只是想要dirs-then-files,我只會這樣做;如果您有一些詳細的排序標準,我會將這些條目存儲在一個數組中,並將其排序爲一個自定義排序函數。

0

您需要閱讀並排序。或者使用不同的庫函數來完成它。

3

如果您使用opendir/readdir,但您可以使用scandir(3)(假設您在* nix系統上),如果您想要對所有目錄條目進行排序,您將不得不對其進行排序。

0

您可以維護兩個數據結構,一個用於目錄,一個用於文件。 一旦你開始用dirent讀取目錄,插入相應的結構運行時。

將兩個列表最後分別與目錄和文件合併。 該方法將一次完成O(N),合併將只需要一條O(1)的指令。

相關問題