如何从下面的代码中获得漂亮的完整文件名:
;bugfixes
Source: "BugfixesCombatGameConstants.json"; DestDir: "{code:battletechDataDir}constants";
Flags: uninsneveruninstall; Components: DataBugfixes; BeforeInstall: BackupFile()
和BackupFile()
程序:
procedure BackupFile();
var fileToBackup : String;
begin
{ if backup file already exists skip creation, otherwise rename the file to file.backup }
fileToBackup := CurrentFilename(); { get destination file name }
if not FileExists(fileToBackup + '.backup') then
begin
if not RenameFile(fileToBackup, fileToBackup + '.backup') then
MsgBox('Creation backup file for ' + fileToBackup + ' failed!', mbInformation, MB_OK);
end;
end;
这不会将{code:battletechDataDir}
转换为完整路径 -CurrentFileName()
返回我{code:battletechDataDir}constants{code:battletechDataDir}constants
。那么如何将该{code:battletechDataDir}
转换为目录,或者以其他方式备份给定文件?
您可以使用ExpandConstant
函数:
fileToBackup := ExpandConstant(CurrentFilename()); { get destination file name }
虽然CurrentFilename
旨在与通配符源一起使用。使用固定文件名,您不妨显式引用该文件:
fileToBackup := battletechDataDir('') + 'constantsCombatGameConstants.json';