使用Inno Setup卸载期间删除文件夹时出现问题

时间:2011-01-18 10:02:59

标签: inno-setup uninstall

我首先说我是使用Inno设置的新手,如果这是一个愚蠢的问题,我很抱歉。    我试图在卸载应用程序期间删除包含其所有子文件夹和文件的文件夹。当应用程序第一次符文时,在“我的文档”中创建特定文件夹。删除它我正在使用“Delltree”功能:

    procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
var Ceva: integer;
begin
  case CurUninstallStep of
    usUninstall:
      begin
        MsgBox('CurUninstallStepChanged:' #13#13 'Uninstall is about to start.', mbInformation, MB_OK)
         end;
    usPostUninstall:
      begin
            Ceva := MsgBox('CurUninstallStepChanged:' #13#13 'Do you want to delete the folder ?.', mbConfirmation, MB_YESNO)
        if Ceva = idYES  then
        DelTree('{userdocs}\myfolder', True, True, True);           
      end;
  end;

出于某种原因,“{userdocs}”常量似乎不起作用。如果我把确切的路径放到文件夹“DelTree('C:\ Users \ myuser \ Documents \ myfolder',True,True,True);”一切正常。

1 个答案:

答案 0 :(得分:2)

在代码中使用常量时,需要使用ExpandConstant函数。所以你的Deltree命令应该是:

  

DELTREE( 'ExpandConstant({用户文档})\ MyFolder文件',   真,真,真);

或者,你看过[UninstallDelete]部分了吗?它可以在卸载时删除目录和文件,而无需代码。