gpt4 book ai didi

file - 重命名和重新创建文件时出现奇怪的时间戳重复

转载 作者:行者123 更新时间:2023-12-04 18:05:51 24 4
gpt4 key购买 nike

我正在尝试将名为 appname.log 的日志文件重命名为 appname_DDMMYY.log 形式以进行归档,并重新创建一个空的 appname.log 以供进一步写入。在 Windows 7 中使用 C++ 和 WinAPI 或 Qt 调用(内部可能相同)执行此操作时,新创建的 .log 文件奇怪地从重命名的文件继承时间戳(上次修改、创建)。
在 Windows 资源管理器中重命名文件并随后在同一目录中快速创建同名文件时,也可以观察到这种行为。但它必须快速完成。单击“新文本文件”后,时间戳正常,但在重命名后,它们更改为重命名文件具有或仍然具有的时间戳。

这是某种Bug吗?如何重命名文件并在不久之后重新创建它而不会弄乱时间戳?

最佳答案

这看起来是设计使然,也许是为了尝试保留“原子保存”的时间。如果应用程序执行类似操作(保存到临时文件、删除原始文件、将临时文件重命名为原始文件)来消除文件损坏的风险,则每次保存文件时,创建时间都会增加。您编辑多年的文件似乎是今天创建的。这种保存模式很常见。

https://msdn.microsoft.com/en-us/library/windows/desktop/ms724320(v=vs.85).aspx
如果您重命名或删除一个文件,然后在此后不久恢复它,Windows 将在缓存中搜索要恢复的文件信息。缓存信息包括其短/长名称对和创建时间。
请注意,修改时间不会恢复。所以保存后文件好像被修改了,创建时间和之前一样。

如果您创建“a-new”并将其重命名回“a”,您将获得“a”的旧创建时间。如果删除“a”并重新创建“a”,则会得到“a”的旧创建时间。

关于file - 重命名和重新创建文件时出现奇怪的时间戳重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28285523/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com