c - 在 C 中查找最新的文件名

标签 c api file-io

<分区>

想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/

相关文章:

c - 错误 C2143 : syntax error : missing ')' before '*'

c++ - 如何将换行按钮更改为空格以完成从输入流的读取?

api - Laravel 5.2 在中止时将 Http 响应状态代码设置为 403

api - 在共享服务器上使用 Twitter API - 即使我正在缓存响应,也超出了速率限制

python - 如果文件不存在则复制文件

c-tcp-网络图 : could tun/tap interface neglict the use of netmap?

c - 如何使用 scanf 输入空格键?

api - 为什么API中存在整数错误代码?

java - 从 Java 中的字符串在内存中创建 File 对象

c++ - 如何在 C++ 中读取复杂的文本文件?