我首先说我是使用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);”一切正常。
答案 0 :(得分:2)
在代码中使用常量时,需要使用ExpandConstant函数。所以你的Deltree命令应该是:
DELTREE( 'ExpandConstant({用户文档})\ MyFolder文件', 真,真,真);
或者,你看过[UninstallDelete]部分了吗?它可以在卸载时删除目录和文件,而无需代码。