0

我的安装程序中有这个,我需要更改 ini 文件的名称。

[INI]
Filename: {app}\bin\old.ini; Section: Data; Key: key; String: Value;

如果我只是更改文件名,它将创建另一个 ini 文件,我会丢失数据。

有没有一些简单的方法可以在安装程序中重命名这个 ini 文件?

4

2 回答 2

2

我认为您应该在 [CODE] 部分中使用 RenameFile() ,因为您知道 ini 文件在哪里。

于 2008-11-25T14:34:47.540 回答
1

只是对 PhiLho 的回答更加冗长:

在安装程序的 [INI] 部分,只需将所有内容更改为新的 .ini 文件,然后在代码中重命名 ssInstall 步骤中的旧文件,如下所示:

procedure CurStepChanged(CurStep: TSetupStep);
var
  OldFile: string;
begin
  if CurStep = ssInstall then
  begin
    OldFile := ExpandConstant('{app}\old.ini');
    if FileExists(OldFile) then
      RenameFile(OldFile, ExpandConstant('{app}\new.ini'));
  end;
end;

它按预期工作,因为 ssInstall 发生在 [INI] 部分之前,因此当安装程序尝试创建新的 .ini 文件时,旧的文件已经被重命名,并且它只会在必要时更新任何条目。

于 2008-12-01T16:18:52.947 回答