6

我们如何在安装前复制、移动、重命名用户文件?

我们可以使用 [InstallDelete] 部分轻松删除文件:

[InstallDelete]
Type: files; Name: "{app}\SomeFile.exe";

我们可以以类似的方式进行复制、重命名吗?

编辑:

我试图在 [Files] 部分中进行此操作,但由于源文件不存在,因此在编译过程中收到错误消息:

[Files]
Source: "{app}\SomeFile.exe"; DestDir: "{app}\SomeDir\SomeFile.exe"; 
4

1 回答 1

8

对于复制文件,您可以使用该[Files]部分,但我认为没有办法在单独的部分中进行移动或重命名操作,因此我建议您为此使用[Code]部分。

这是移动和重命名操作的示例代码。他们都使用该RenameFile功能,因为它在内部是相同的操作:

[Code]
procedure CurStepChanged(CurStep: TSetupStep);
begin
  if CurStep = ssInstall then
  begin
    // move file
    if not RenameFile(ExpandConstant('{app}\SomeDir\SomeFile.exe'), ExpandConstant('{app}\SomeFile.exe')) then
      MsgBox('File moving failed!', mbError, MB_OK);
    // rename file
    if not RenameFile(ExpandConstant('{app}\SomeFile.exe'), ExpandConstant('{app}\RenamedSomeFile.exe')) then
      MsgBox('File moving failed!', mbError, MB_OK);
  end;
end;
于 2013-05-16T12:03:57.157 回答