<分区>
想fopen()一个目录中的最新文件
(命名方案为file1.txt、file2.txt、file3.txt等)
Visual Studio 中是否有用于此的 API 函数?
如果没有,读入所有 .txt 文件名并排序以获得我需要的文件名是不是一个好主意?是否有更好的算法可供引用?
谢谢。
<分区>
想fopen()一个目录中的最新文件
(命名方案为file1.txt、file2.txt、file3.txt等)
Visual Studio 中是否有用于此的 API 函数?
如果没有,读入所有 .txt 文件名并排序以获得我需要的文件名是不是一个好主意?是否有更好的算法可供引用?
谢谢。
最佳答案
我假设“最新”是指“最近修改的文件”。
有一个C运行时库函数_fstat and _fstati64 (对于大于 4GB 的大文件)。 _fstat 的函数签名是:
int _fstat(int file_handle, struct _stat *file_info);
_stat 结构有一些关于文件的有用信息,但您可能需要 st_mtime
成员,它的最后修改时间为 time_t
(时间在自 1970 年 1 月 1 日 00:00:00 UTC 以来的秒数)。
使用 win32 函数可能有效 FindFirstFile() and FindNextFile()遍历目录,将文件存储在结构数组中(包含文件名修改时间),然后调用 qsort_s()在数组上,按时间降序排列。
希望对您有所帮助。
关于c - 在 C 中查找最新的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1330420/