gpt4 book ai didi

c - 获取最后创建(修改)的文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:19:09 24 4
gpt4 key购买 nike

我有一个创建文件并用数据填充它们的程序,具体是什么并不重要,它根据实际时间 (YYYYMMDDHHMMSS) 命名它们。现在我想总是打开最后创建的文件,意思是最近的文件,这在 C 中可能吗?如果是的话,我会很感激任何提示?

更新

我要说清楚。

假设我有一个我想使用的字符串:

..............
FILE* input = NULL;
char* fileName = NULL;
...............// in some getting the name of the last modified file
and than open it
inp = fopen(fileName,"rb");

最佳答案

ftw()功能在这里可能很有用。它将为目录中的每个文件和目录调用一个函数(您需要编写)。您的函数将决定其参数是否比之前看到的任何参数更新,如果是,则将其记录在全局变量中。

需要注意的是,ftw 将查看每个子目录中的每个文件。那可能不是你想要的。但如果没问题,使用 ftw 将使您的代码更简洁,因为它会为您扫描和统计目录。这是我写的一个示例,它将在当前目录中找到最近修改的文件:

#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdio.h>
#include <limits.h>
#include <string.h>
#include <ftw.h>

char newest[PATH_MAX];
time_t mtime = 0;

int checkifnewer(const char *path, const struct stat *sb, int typeflag)
{
if (typeflag == FTW_F && sb->st_mtime > mtime) {
mtime = sb->st_mtime;
strncpy(newest, path, PATH_MAX);
}
return 0;
}

main()
{
ftw(".", checkifnewer, 1);
printf("%s\n", newest);
}

关于c - 获取最后创建(修改)的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25310066/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com