事实证明这非常困难。我想使用stat
来获取最近修改过的目录的名称。我已经研究过stat
了很多,但老实说我真的不明白如何使用它,所以我真的没有任何代码可以显示。
如何使用stat
?
答案 0 :(得分:0)
我假设您熟悉从给定目录中列出所有文件(并提取出目录)[如果没有在opendir / readdir上读取]。算法将不准确,因为目录可以在其时间戳之后被触及被检查但是假设这不是一个问题,这是你可能正在做的事情
DIR *dirp = opendir(".");
struct stat dStat;
time_t latest = 0;
while ((dp = readdir(dirp)) != NULL) {
memset(&dStat, 0, sizeof(dStat));
if (stat(dp->d_name, &dStat) < 0) {
printf("Error getting info on file\n");
continue;
}
// If not a directory skip
if ((dStat.st_mode & S_IFDIR) != S_IFDIR) {
continue;
}
// check with the latest timestamp
if (dStat.st_mtime > latest) {
// On finding a more recent file switch that to latest
strcpy(dName, dp->d_name);
latest = fStat.st_mtime;
}
}
closedir(dirp);
printf("Most recently touched directory %s\n", dName);