在C中查找最新的文件名

时间:2009-08-25 19:27:55

标签: c api file-io

想fopen()目录中的最新文件
(使用命名方案file1.txt,file2.txt,file3.txt等)
Visual Studio中是否有API函数用于此? 如果没有,读取所有.txt文件名并排序以获得我需要的文件名是一个好主意吗?有没有更好的算法可以指出?

感谢。

1 个答案:

答案 0 :(得分:1)

我将假设“最新”是指“最近修改过的文件”。

有一个C运行时库函数_fstat and _fstati64(对于大型文件> 4GB)。 _fstat的函数签名是:

int _fstat(int file_handle, struct _stat *file_info);

_stat结构有一些关于该文件的有用信息,但您可能想要st_mtime成员,其最后修改时间为time_t(自00:00开始的时间以秒为单位: 00 UTC,1970年1月1日)。

可以使用win32函数FindFirstFile() and FindNextFile()来遍历目录,将文件存储在结构数组中(包含文件名修改时间),然后在数组上调用qsort_s(),按时间排序,按降序排列。

我希望有所帮助。