我目前正在开发一个项目,我需要从目录中的基本名称中找到最旧的文件。
例如,文件的基本名称可能是mylog,但需要查看所有文件,如mylog_060620121421.txt。从mylog_的所有文件中我需要找出哪个文件是oldeest,即首先创建但我找不到如何执行此操作。
我已经看过scandir命令列出文件名,但我看不出如何使用它来查找文件的最早日期。
答案 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(状态更改)作为类型断开器...