0

インストーラーにこれがあり、ini ファイルの名前を変更する必要があります。

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

ファイル名を変更すると、別のiniファイルが作成され、データが失われます。

インストーラーでこの ini ファイルの名前を変更する簡単な方法はありますか?

4

2 に答える 2

2

ini ファイルの場所がわかっているので、代わりに [CODE] セクションで RenameFile() を使用する必要があると思います。

于 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 に答える