¿Cómo puedo cambiar el nombre de un archivo ini en Inno Setup?
-
11-07-2019 - |
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?
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.