Inno Setup - 文件复制

3

我正在使用Inno Setup和InnoTools Downloader,下载完成后我想将下载的文件复制到所选目录。

 if CurStep=ssPostInstall then begin
    FileCopy('Test.exe', ExpandConstant('{app}\Test.exe'), False);

它并没有做任何事情,但如果我重新启动安装程序并再次安装到同一文件夹,则会复制该文件。这是如何可能的或者我做错了什么?如果我只是这样做,那么每次它都可以正常工作:

 if CurStep=ssPostInstall then begin
    FileCopy('Test.exe', 'Test1.exe', False);

同时也要指定第一个参数(ExistingFile)的完整路径。将其设置为你下载文件的完整路径。否则,你就需要将源文件放置在当前目录下(例如通过 GetCurrentDir 函数返回的路径)。 - TLama
谢谢您的快速回答,但是请问您能告诉我如何直接将文件下载到所选目录吗?我正在InitializeWizard这部分将文件添加到下载器中,但我无法在此处使用{app},因为它尚未初始化。路径选择后的代码部分在哪里? - YolmieK
1个回答

2

我使用常量{src}成功解决了问题:

// Add the file
itd_addfile('http://test.com/Test.exe',ExpandConstant('{src}\Test.exe'));

// Copy the file when it's finished the download
FileCopy(ExpandConstant('{src}\Test.exe'), ExpandConstant('{app}\Test.exe'), False);

// Delete the old file
DeleteFile(ExpandConstant('{src}\Test.exe'));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接