我需要修改文件的“创建”(如果存在)、“修改”和“访问”时间戳。理想情况下,这将是一个独立于平台的解决方案。

我查看了 boost 库,但没有看到任何相关内容。我发现的最接近相关的东西是 对于 Windows。

有人可以帮忙吗?谢谢。

有帮助吗?

解决方案

我从来没有使用过,但我想,你正在寻找的属性功能:点击 HTTP://www.boost .ORG / DOC /库/ 1_44_0 /库/文件系统/ V2 / DOC /#的reference.html属性功能结果 点击 也有功能的最后修改:

template <class Path> std::time_t last_write_time(const Path& p);
template <class Path> void last_write_time(const Path& p, const std::time_t new_time);

其他提示

另一个时,稍微简单的代码段用于Windows

使用 utime 功能和 utimbuf 结构。该方法在 Windows 中可用,但命名时带有前导下划线,如下所示 _utime.

更新: utime 只允许您更改 使用权修改 次(通过 utimbufactimemodtime 字段)。这很可能是因为许多 Unix 风格的文件系统不记录 创建 任何地方的时间。

不是所有的流行文件系统的支持 '创建' 和 '已访问' 时间戳: HTTP:// EN。 wikipedia.org/wiki/Comparison_of_file_systems#Metadata

的Windows文件系统做的,但它可能不是,如果你需要的可移植性取决于他们现在是一个好主意。看着那张桌子,我得到一个印象是,在新的,虽然添加的文件系统为他们支持的趋势。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top