C++ POSIX(或特定于 Linux)和 WIN32 要求人为更改文件的创建日期

标签 c++ winapi filesystems posix portability

开始:我的代码依赖于 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/

相关文章:

c++ - 如何禁止分配给不引用变量?

c++ - 使用 x64 汇编语言的通用 Windows 平台 C++

c++ - 缓存位图

c# - System.IO.Directory.CreateDirectory 仅具有当前用户的权限?

windows - Windows/Linux 实例可以共享一个 ebs 卷吗?

c++ - 约束和概念的定义顺序 c++20

java - 重载 C++ 赋值运算符使其表现得像 Java

c# - 反向表单点击?

python - 如何在python中查找/导入win32security?

php - 将文件路径存储在数据库中