解压后文件夹的修改时间变为当前时间的解决办法

原作:2021-09-29 23:02:26
更新:2023-03-08 15:46

问题

  1. 解压压缩包时,文件夹的修改时间变为当前时间。这主要发生在非空文件夹上,空文件夹和文件的修改时间正常。
  2. 虽然该时间一般不影响文件内容,但会隐含下列问题:
    – 不能按原样恢复压缩前的状态
    – 失去修改时间中可能包含的有用信息
    – 失去使用修改时间排序文件夹的这个维度
    – 强迫症看了不舒服

原因

解压时,文件夹先被创建,然后其中的文件才能被创建。而文件被创建时会改变其所在文件夹的修改时间,因此非空文件夹的修改时间变为其中最后一个文件被创建的时间,看起来接近当前时间。

解决办法

应使用合格的压缩软件,并采用合格的压缩文件格式,这样能够在一个文件夹的内容被全部创建完毕后,恢复该文件夹的修改时间。但前提是,压缩文件内必须已储存了压缩前的修改时间。

软件评测

这里列出几个支持此功能的压缩软件。其他软件待将来评测后添加。

压缩软件 版本 格式 压缩时能否保存时间 解压时能否恢复时间 备注
7z 2107 .zip
7z 2107 .7z
Bandizip 6.29 .zip 是*
Bandizip 6.29 .7z 是*
2345好压 V6.3 Build 11098 .zip 流氓软件
2345好压 V6.3 Build 11098 .7z 流氓软件
WinRAR .rar 未测试 未测试 不推荐,见后文

* 该项功能需要对压缩软件进行手动配置才支持,因其默认是关闭的。如何配置见下文。

软件配置

Bandizip

  • 设置 > 压缩设置 > 只压缩单个文件夹时不要创建根文件夹,取消勾选(此项非常重要)
  • 设置 > 压缩设置 > 创建 Zip 文件时保存 NTFS 时间戳信息,保持勾选

注意事项

  1. 怎样测试一个压缩文件是否储存了压缩前的修改时间?在压缩软件中打开该压缩文件,并设置文件浏览控件的表头,使其显示出修改时间一列。如果看到正确(一般为不同于压缩文件的修改时间)的修改时间,说明压缩文件内已经储存了修改时间。
  2. 对于 7z,在解压进行的过程中,文件夹的修改时间是当前时间。这不要紧,等解压完毕后,7z 会自动把修改时间恢复为正确的修改时间。(如果不行,用 7z 重新解压到相同位置并全部替换,则可恢复为正确的修改时间。但这种情况一般不会发生。)对上述其他压缩软件,应该也类似。

压缩文件格式

这里简要介绍一下压缩格式的选择,仅供参考。

格式 压缩文件大小 压缩速度 兼容性 许可证 推荐
.zip 推荐
.7z 7-Zip License 推荐
.rar 商业使用涉及版权问题 不推荐

参考

  1. https://sourceforge.net/p/sevenzip/discussion/45797/thread/2256f7c5/#26c3
  2. https://sourceforge.net/p/sevenzip/discussion/45797/thread/2256f7c5/#1add

猜你喜欢

转载自blog.csdn.net/xzqsr2011/article/details/120557691