Pregunta

Tengo esto en mi instalador y necesito cambiar el nombre del archivo ini.

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

Si solo cambio el nombre del archivo, creará otro archivo ini y perderé los datos.

¿Hay alguna manera fácil de cambiar el nombre de este archivo ini en el instalador?

¿Fue útil?

Solución 2

Simplemente siendo más detallado sobre la respuesta de PhiLho:

En la sección [INI] del instalador, simplemente cambie todo al nuevo archivo .ini, luego en el código cambie el nombre del archivo antiguo en el paso ssInstall así:

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;

Funciona como se esperaba porque ssInstall ocurre antes de la sección [INI], por lo que cuando el instalador intente crear el nuevo archivo .ini, el antiguo ya será renombrado y solo actualizará las entradas si es necesario.

Otros consejos

Creo que debería usar Cambiar nombre de archivo () en la sección [CÓDIGO], ya que sabe dónde está el archivo ini.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top