3

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

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

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

4

2 回答 2

3

在linux上只需输入目录:

ls -trl

这给出了一个列表,从最旧的文件开始。如果你想要直接的名字,你可以得到它:

ls -tr | head - 1
于 2012-06-08T13:46:59.087 回答
3

使用 stat()
运行命令“man -S 2 stat”以了解更多信息。

#include <sys/stat.h>
结构统计结构统计;
stat(文件名,&structstat)
printf("最后修改时间:%s", ctime(&structstat.st_mtime));

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

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

于 2012-06-08T14:25:04.790 回答