【问题标题】:Can't get DelTree to delete a folder in Inno Setup无法让 DelTree 删除 Inno Setup 中的文件夹
【发布时间】:2012-12-29 23:22:22
【问题描述】:

我有一个过程DeleteTransferFolder,在安装过程中使用 Inno Setup 中的 BeforeInstall 调用它。

我知道调用该过程是因为我有几个 MsgBox 消息显示。但是DelTree不会删除指定的文件夹和子文件夹。

有什么想法吗?

procedure DeleteTransferFolder();
begin
  MsgBox('DeleteTransferFolder 1', mbInformation, MB_OK);

  if (FileExists ('{userdesktop}\RemedyNotes 1.0\RemedyNotes Old.remno')) then
    DelTree(ExpandConstant('{userdesktop}\RemedyNotes 1.0'), True, True, True);

  MsgBox('DeleteTransferFolder 2', mbInformation, MB_OK);    
end;

【问题讨论】:

    标签: inno-setup


    【解决方案1】:

    您在 FileExists 行中缺少 ExpandConstant 调用,因此它返回 false,因此不会调用 DelTree。

    显示第二个 MsgBox 是因为它超出了条件 if(可能是由于缺少开始/结束对)。

    因此,将您的代码更改为:

    procedure DeleteTransferFolder();
    begin
      MsgBox('DeleteTransferFolder 1', mbInformation, MB_OK);
    
      if (FileExists (ExpandConstant('{userdesktop}\RemedyNotes 1.0\RemedyNotes Old.remno'))) then
      begin
        DelTree(ExpandConstant('{userdesktop}\RemedyNotes 1.0'), True, True, True);
        MsgBox('DeleteTransferFolder 2', mbInformation, MB_OK);
      end;
    end;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-09
      • 2016-02-19
      • 2015-05-06
      相关资源
      最近更新 更多