我有一个过程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;

最佳答案

您在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;

关于inno-setup - 无法让DelTree在Inno Setup中删除文件夹,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14344889/

10-10 21:15