【问题标题】:Delphi/TZipFile: how to restore the file's original timestamp?Delphi/TZipFile:如何恢复文件的原始时间戳?
【发布时间】:2013-03-16 03:05:48
【问题描述】:

使用 TZipFile 类从 zip 中提取的文件(我使用的是 ExtractAll 方法)将系统日期时间作为创建/修改文件的日期,但我需要恢复原始时间戳,就像 winzip/winrar 一样。 TZipFile 类也可以这样做,还是我必须在之后更改文件时间戳?

【问题讨论】:

  • AFAIK TZipFile 不支持在提取文件时恢复文件日期或属性。你需要稍后再做

标签: delphi zip


【解决方案1】:

恐怕您对内置邮政编码不走运。创建 ZIP 文件时,它会记录修改后的时间戳。但解压时不恢复。而且没有办法让它这样做。

我认为您最好的选择是使用第三方 ZIP 组件。例如,我推荐tpAbbrevia,它确实支持此功能。

【讨论】:

    【解决方案2】:

    从 Delphi XE6 开始,TZipFile 类会自动保存提取文件的时间戳和属性 (QC)。因此,最简单的解决方案是将您的 Delphi 升级到 XE6 或更高版本。

    如果无法升级,则需要在提取后恢复时间戳和属性。原始时间戳和属性在 TZipFile.FileInfos 属性(TZipHeader 的数组)中可用。

    【讨论】:

    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
    • 在这种情况下,答案的基本部分是“这在 Delphi XE6 中已修复。”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-11
    • 2015-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-20
    相关资源
    最近更新 更多