开始:我的代码依赖于 Boost。
我需要更改文件创建日期以将错误注入(inject)我的单元测试。
在 STL、C++ 标准库或 boost(::filesystem) 中是否有可移植的方式来执行此操作?如果没有,有没有人知道一个很好的简单 C++ header-only(或非常简单的)抽象将补充 boost/STL/STD 中的内容?
如果不是,我需要头文件/函数名称/数据结构,以便在 Windows 和 Linux(或更适用于 unix 的可移植解决方案)上人为更改文件创建后的创建日期。
任何指针都会有所帮助。
最佳答案
POSIX 解决方案是 utimes
.
#include <sys/time.h>
int utimes(const char *filename, const struct timeval times[2]);
win32 解决方案是 SetFileTime
.
关于C++ POSIX(或特定于 Linux)和 WIN32 要求人为更改文件的创建日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4663290/