2011-05-10 66 views
1

在Linux下,我可以使用opendir打开一个目录,然后使用readdir来获取文件名。扫描目录并获取最新匹配创建时间

我一直在试用scandir和思想“很好,我可以通过传入自定义过滤器来搜索此目录中的文件”,然后使用自定义排序方式进行排序,以便按创建日期进行排序。但后来我意识到这个直接结构是多么有限。它只包含最少的信息。

这是唯一可能的API吗?即我是否必须统计每个单个文件以获取它的大小以进行排序?这是如何LS - 吨的作品?

回答

1

也就是说,实际上,ls -t的工作方式如'strace ls -t'所证实的那样。从历史上看,UNIX目录只是一个包含文件名列表的特殊文件,应用程序需要自己读取和解析“文件”。自然,当新的文件系统被开发出来扩大了文件名的固定长度时,这导致了问题,所以opendir/readdir/closedir接口被开发来抽象出文件系统目录实现。但是对目录列表中直接可用的内容的限制仍然存在。

0

POSIX没有任何存储创建时间的功能,更不用说检索它了。