インストーラーにこれがあり、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 ファイルの名前を変更する簡単な方法はありますか?
ini ファイルの場所がわかっているので、代わりに [CODE] セクションで RenameFile() を使用する必要があると思います。
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 ファイルを作成しようとすると、古いファイルの名前は既に変更されており、必要に応じてエントリが更新されます。