data.mpd
为了满足Win 8 的要求,我c:\ProgramFiles
需要将数据文件 (c:\User\....
我怎样才能:
- 获取上一次安装的路径
- 检查文件 data.mpd 是否存在
- 将该文件复制到 C:\Users...
data.mpd
为了满足Win 8 的要求,我c:\ProgramFiles
需要将数据文件 (c:\User\....
我怎样才能:
您可以使用该WizardForm.PrevAppDir
属性,该属性包含文件夹路径,安装AppId
程序先前已在其中安装了应用程序(如果尚未安装,则为空)。请注意,该属性是在初始化向导表单后填充的,因此请在InitializeWizard
事件后阅读。
对于您的任务,我将在预安装步骤执行此操作,因此对于CurStepChanged
事件方法,我将编写如下内容:
[Code]
procedure CurStepChanged(CurStep: TSetupStep);
var
DataFilePath: string;
begin
// check if the current step is pre-installation step and if the
// application had been previously installed; if so, then...
if (CurStep = ssInstall) and (WizardForm.PrevAppDir <> '') then
begin
// build and store the path to the Data.mpd file from the prev.
// installation path
DataFilePath := AddBackslash(WizardForm.PrevAppDir) + 'Data.mpd';
// check, if that Data.mpd file exists; if so, then...
if FileExists(DataFilePath) then
// copy it to the target directory; if it fails, show error message
if not FileCopy(DataFilePath, <your new directory here>, False) then
MsgBox('Copying of the Data.mpd failed!', mbError, MB_OK);
end;
end;
使用DisableDirPage=auto
. 这将防止人们在升级时更改安装路径。
然后让您的应用程序(而不是安装程序)在其自己的文件夹中检测此文件并将其复制到每个用户的文件夹中。如果多个用户运行您的应用程序,这将为您提供最强大的行为(这是拥有每个用户数据的重点)。