如何解决更改 Inno Setup TDownloadWizardPage 的下载位置
我正在使用 Inno Setup 的下载系统,但我想将下载文件夹从 {tmp}
更改为另一个,有人可以帮助我吗?
的:
DownloadPage.Add('{#LinkJava}',ExpandConstant('{tmp}\Java.exe'),'');
用于:
DownloadPage.Add('{#LinkJava}',ExpandConstant('{src}{#PastaGeralDeApps}{#PastaDownPlugins}{#NomeExeJava}'),'');
我正在创建一个自动安装程序,我需要将应用程序存储在一个文件夹中,以便离线使用。
解决方法
您不能使用 TDownloadWizardPage
更改文件下载到的文件夹(请注意,BaseName
的 TDownloadWizardPage.Add
参数仅接受文件名,而不接受路径)。
但是您可以将文件复制到最终文件夹中,下载完成后。
[Files]
Source: "{tmp}\downloaded-file.exe"; DestDir: "{app}"; flags: external
您当然需要在实际安装之前下载文件。因此,例如从 NextButtonClick(wpReady)
,official CodeDownloadFiles.iss
example 的方式。
如果您需要在安装前将文件移动到最终位置,请使用 RenameFile
或 FileCopy
函数。复制显然更慢,但更可靠,因为您不能在磁盘/文件系统之间移动/重命名。您可以尝试移动,如果移动失败,则退回到复制。
//function that performs the download - OK
function DownloadFiles(Url,Destination,FileName,Hash : String): Boolean;
begin
DownloadPage.Clear;
DownloadPage.Add(Url,Hash);
DownloadPage.Show;
try
try
DownloadPage.Download;
Result := True;
except
if DownloadPage.AbortedByUser then
Log('Aborted by user.')
else
SuppressibleMsgBox(AddPeriod(GetExceptionMessage),mbCriticalError,MB_OK,IDOK);
Result := False;
end;
finally
FileCopyLogged(ExpandConstant('{tmp}\'+FileName),ExpandConstant(Destination+'\'+FileName),False);
end;
Result := True;
end;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。