【发布时间】:2017-06-05 22:13:18
【问题描述】:
有没有办法从一个 zip 文件中只解压缩一个文件? 我将基于response 的代码用于 How to get Inno Setup to unzip a file it installed (all as part of the one installation process),非常适合解压缩,但不知道如何解压缩单个文件:
[Code]:
const
NO_PROGRESS_BOX = 4;
RESPOND_YES_TO_ALL = 16;
procedure UnZip(ZipPath, TargetPath: string);
var
Shell: Variant;
ZipFile: Variant;
TargetFolder: Variant;
begin
Shell := CreateOleObject('Shell.Application');
ZipFile := Shell.NameSpace(ZipPath);
if VarIsClear(ZipFile) then
RaiseException(Format('ZIP file "%s" does not exist or cannot be opened', [ZipPath]));
TargetFolder := Shell.NameSpace(TargetPath);
if VarIsClear(TargetFolder) then
RaiseException(Format('Target path "%s" does not exist', [TargetPath]));
TargetFolder.CopyHere(ZipFile.Items, NO_PROGRESS_BOX or RESPOND_YES_TO_ALL);
end;
【问题讨论】:
标签: winapi zip inno-setup pascalscript