开发者社区> 问答> 正文

如何使用C获取目录中最旧的文件?

我正在实现日志机制,并且想在达到定义的大小时根据在目录中创建的时间删除最旧的日志文件。

但是现在我坚持要根据创建时间来获取最早的文件。如何使用C获得它?

展开
收起
祖安文状元 2020-01-08 15:08:03 536 0
1 条回答
写回答
取消 提交回答
  • 没有一种可移植的方法来获取C中文件的创建时间(或其修改时间)。

    取而代之的是,您需要依赖于某些不严格可移植的东西-例如,使用目录条目中的文件名和stat()POSIX定义的功能,以获取可能包含或不包含struct timespec st_ctim;字段的结构。

    当然,某些文件系统根本没有创建时间。即使您将文件复制到其他地方(例如,复制到远程存储),即使创建一个文件,创建时间也将消失,因此相对不可靠。

    代替; 最好将创建时间和日期添加到文件名中。如果您以正确的顺序执行此操作(“年,月,日,时,分,秒”-例如,可能类似于“ mylog_2019-10-31_14-23-45.txt”),并保持前导零(例如09,代表月份而从9不代表月份),则按字母数字顺序对文件名列表进行排序也将按时间顺序对它们进行排序。

    2020-01-08 15:08:07
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载