确定目录中最旧的文件

时间:2012-06-08 13:22:31

标签: c directory

我目前正在开发一个项目,我需要从目录中的基本名称中找到最旧的文件。

例如,文件的基本名称可能是mylog,但需要查看所有文件,如mylog_060620121421.txt。从mylog_的所有文件中我需要找出哪个文件是oldeest,即首先创建但我找不到如何执行此操作。

我已经看过scandir命令列出文件名,但我看不出如何使用它来查找文件的最早日期。

2 个答案:

答案 0 :(得分:3)

在linux上输入dir:

ls -trl

这给出了一个列表,从最旧的文件开始。如果您想直接使用该名称,可以使用:

ls -tr | head - 1

答案 1 :(得分:3)

使用stat()
运行命令“man -S 2 stat”以阅读更多相关信息。

#include <sys/stat.h>
struct stat structstat;
stat(filename, &structstat)
printf("last modified time: %s", ctime(&structstat.st_mtime));

其中filename是表示文件的字符串/ char * structstat是stat的结构,可以在sys / stat.h中找到

最旧的文件将是具有最早修改时间的文件,structstat.st_mtime,除非您同时拥有两者,然后您可以使用structstat.st_ctime(状态更改)作为类型断开器...