2011-05-10 67 views
1

在Linux下,我可以使用opendir打開一個目錄,然後使用readdir來獲取文件名。掃描目錄並獲取最新匹配創建時間

我一直在試用scandir和思想「很好,我可以通過傳入自定義過濾器來搜索此目錄中的文件」,然後使用自定義排序方式進行排序,以便按創建日期進行排序。但後來我意識到這個直接結構是多麼有限。它只包含最少的信息。

這是唯一可能的API嗎?即我是否必須統計每個單個文件以獲取它的大小以進行排序?這是如何LS - 噸的作品?

回答

1

也就是說,實際上,ls -t的工作方式如'strace ls -t'所證實的那樣。從歷史上看,UNIX目錄只是一個包含文件名列表的特殊文件,應用程序需要自己讀取和解析「文件」。自然,當新的文件系統被開發出來擴大了文件名的固定長度時,這導致了問題,所以opendir/readdir/closedir接口被開發來抽象出文件系統目錄實現。但是對目錄列表中直接可用的內容的限制仍然存在。

0

POSIX沒有任何存儲創建時間的功能,更不用說檢索它了。