扫描目录并获取最新的匹配创建时间

时间:2011-05-10 03:11:00

标签: linux glibc

在Linux下我可以使用opendir打开一个目录,然后使用readdir获取文件名。

我一直在尝试使用scandir并且认为“我可以通过传递自定义过滤器来搜索我想要的目录中的文件”,并使用自定义排序进行排序,我希望按创建日期排序。但后来我意识到了直接结构是多么有限。它只包含最少的信息。

这是唯一可能的API吗?即,我是否必须统计每个文件以获得它的大小进行排序?这是ls -t的工作原理吗?

2 个答案:

答案 0 :(得分:1)

确实,ls -t是如何工作的,因为'strace ls -t'将证实。从历史上看,UNIX目录只是一个包含文件名列表的特殊文件,应用程序应该自己读取和解析该“文件”。当然,当开发更新的文件系统扩展文件名的固定长度时,这会导致问题,因此开发了opendir / readdir / closedir接口以抽象出文件系统目录实现。但是目录列表中直接可用的限制仍然存在。

答案 1 :(得分:0)

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