我需要修改文件的'created'(如果存在),'modified'和'visited'时间戳。理想情况下,这将是一个独立于平台的解决方案。
我环顾了加速库,但我看不到任何相关内容。对于Windows来说,我发现最近的相关内容是this。
有人可以帮忙吗?感谢。
答案 0 :(得分:7)
我从未使用它们,但我猜你正在寻找属性函数:
http://www.boost.org/doc/libs/1_44_0/libs/filesystem/v2/doc/reference.html#Attribute-functions
还有最后一次修改的功能:
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);
答案 1 :(得分:2)
Another,稍微简单的Windows代码段。
答案 2 :(得分:1)
使用utime
函数和utimbuf
结构。该方法在Windows中可用,但使用前导下划线命名为_utime
。
更新:utime
只允许您更改访问和修改次(通过utimbuf
的{{1}}和{ {1}}字段)。这很可能是因为许多Unix风格的文件系统都没有在任何地方记录创建时间。
答案 3 :(得分:0)
并非所有流行的文件系统都支持“已创建”和“已访问”的时间戳:http://en.wikipedia.org/wiki/Comparison_of_file_systems#Metadata
Windows文件系统可以,但如果您需要可移植性,现在依赖它们可能不是一个好主意。看一下这个表格,我得到的印象是,有一种趋势是在较新的文件系统中添加对它们的支持。