【发布时间】:2013-03-16 03:05:48
【问题描述】:
使用 TZipFile 类从 zip 中提取的文件(我使用的是 ExtractAll 方法)将系统日期时间作为创建/修改文件的日期,但我需要恢复原始时间戳,就像 winzip/winrar 一样。 TZipFile 类也可以这样做,还是我必须在之后更改文件时间戳?
【问题讨论】:
-
AFAIK TZipFile 不支持在提取文件时恢复文件日期或属性。你需要稍后再做
使用 TZipFile 类从 zip 中提取的文件(我使用的是 ExtractAll 方法)将系统日期时间作为创建/修改文件的日期,但我需要恢复原始时间戳,就像 winzip/winrar 一样。 TZipFile 类也可以这样做,还是我必须在之后更改文件时间戳?
【问题讨论】:
恐怕您对内置邮政编码不走运。创建 ZIP 文件时,它会记录修改后的时间戳。但解压时不恢复。而且没有办法让它这样做。
我认为您最好的选择是使用第三方 ZIP 组件。例如,我推荐tpAbbrevia,它确实支持此功能。
【讨论】:
从 Delphi XE6 开始,TZipFile 类会自动保存提取文件的时间戳和属性 (QC)。因此,最简单的解决方案是将您的 Delphi 升级到 XE6 或更高版本。
如果无法升级,则需要在提取后恢复时间戳和属性。原始时间戳和属性在 TZipFile.FileInfos 属性(TZipHeader 的数组)中可用。
【讨论】: