我的安装程序中有这个,我需要更改 ini 文件的名称。
[INI]
Filename: {app}\bin\old.ini; Section: Data; Key: key; String: Value;
如果我只是更改文件名,它将创建另一个 ini 文件,我会丢失数据。
有没有一些简单的方法可以在安装程序中重命名这个 ini 文件?
我的安装程序中有这个,我需要更改 ini 文件的名称。
[INI]
Filename: {app}\bin\old.ini; Section: Data; Key: key; String: Value;
如果我只是更改文件名,它将创建另一个 ini 文件,我会丢失数据。
有没有一些简单的方法可以在安装程序中重命名这个 ini 文件?
我认为您应该在 [CODE] 部分中使用 RenameFile() ,因为您知道 ini 文件在哪里。
只是对 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 文件时,旧的文件已经被重命名,并且它只会在必要时更新任何条目。