1

data.mpd为了满足Win 8 的要求,我c:\ProgramFiles需要将数据文件 (c:\User\....

我怎样才能:

  • 获取上一次安装的路径
  • 检查文件 data.mpd 是否存在
  • 将该文件复制到 C:\Users...
4

2 回答 2

0

您可以使用该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;
于 2013-07-14T09:45:03.023 回答
0

使用DisableDirPage=auto. 这将防止人们在升级时更改安装路径。

然后让您的应用程序(而不是安装程序)在其自己的文件夹中检测此文件并将其复制到每个用户的文件夹中。如果多个用户运行您的应用程序,这将为您提供最强大的行为(这是拥有每个用户数据的重点)。

于 2013-07-15T12:09:43.083 回答