inno-setup - Inno Setup DelTree 不删除顶级文件夹
问题描述
我连续三个调用 DelTree()CurUninstallStepChanged()
是usPostUninstall
这样的:
if IsDeleteAData then
begin
Res:=DelTree(AppData+'\ADirName', true, true, true);
Log('Delete '+AppData+'\ADirName result: '+IntToStr(Integer(Res)));
end;
if IsDeleteBData then
begin
Res:=DelTree(AppData+'\BDirName', true, true, true);
Log('Delete '+AppData+'\BDirName result: '+IntToStr(Integer(Res)));
end;
if IsDeleteCData then
begin
Res:=DelTree(AppData+'\CDirName', true, true, true);
Log('Delete '+AppData+'\CDirName result: '+IntToStr(Integer(Res)));
end;
A 和 B 删除所有应有的内容。但是,C 不会删除顶级目录(实际的CDirName),但会删除内容,如果CDirName为空,它将删除CDirName目录本身。
如果我启用日志记录,我得到的结果是当它不删除顶级目录时结果为 0。
它在 6.0.3 中执行此操作,现在已更新到 6.2.0,并且仍在执行此操作。有什么想法或方法可以深入挖掘吗?我过去从来没有遇到过问题DelTree()
。
我捕获了进程信息,它基本上只是说不能删除:
"Time of Day","Process Name","PID","Operation","Path","Result","Detail"
"7:35:00.0095154 PM","_iu14D2N.tmp","1616","CreateFile","C:\Users\testing\AppData\Roaming\CDirName","SUCCESS","Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened"
"7:35:00.0095290 PM","_iu14D2N.tmp","1616","QueryBasicInformationFile","C:\Users\testing\AppData\Roaming\CDirName","SUCCESS","CreationTime: 10/6/2021 7:20:47 PM, LastAccessTime: 10/6/2021 7:30:50 PM, LastWriteTime: 10/6/2021 7:28:54 PM, ChangeTime: 10/6/2021 7:28:54 PM, FileAttributes: RD"
"7:35:00.0095347 PM","_iu14D2N.tmp","1616","CloseFile","C:\Users\testing\AppData\Roaming\CDirName","SUCCESS",""
"7:35:00.0095902 PM","_iu14D2N.tmp","1616","CreateFile","C:\Users\testing\AppData\Roaming\CDirName","SUCCESS","Desired Access: Read Data/List Directory, Synchronize, Disposition: Open, Options: Directory, Synchronous IO Non-Alert, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened"
"7:35:00.0096079 PM","_iu14D2N.tmp","1616","QueryDirectory","C:\Users\testing\AppData\Roaming\CDirName\*","SUCCESS","Filter: *, 1: ."
"7:35:00.0096363 PM","_iu14D2N.tmp","1616","QueryDirectory","C:\Users\testing\AppData\Roaming\CDirName","SUCCESS","0: .., 1: desktop.ini, 2: Paint.lnk"
"7:35:00.0096876 PM","_iu14D2N.tmp","1616","CreateFile","C:\Users\testing\AppData\Roaming\CDirName\desktop.ini","SUCCESS","Desired Access: Read Attributes, Delete, Disposition: Open, Options: Non-Directory File, Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened"
"7:35:00.0097112 PM","_iu14D2N.tmp","1616","QueryAttributeTagFile","C:\Users\testing\AppData\Roaming\CDirName\desktop.ini","SUCCESS","Attributes: HS, ReparseTag: 0x0"
"7:35:00.0097230 PM","_iu14D2N.tmp","1616","<Unknown>","C:\Users\testing\AppData\Roaming\CDirName\desktop.ini","SUCCESS",""
"7:35:00.0097332 PM","_iu14D2N.tmp","1616","CloseFile","C:\Users\testing\AppData\Roaming\CDirName\desktop.ini","SUCCESS",""
"7:35:00.0098645 PM","_iu14D2N.tmp","1616","CreateFile","C:\Users\testing\AppData\Roaming\CDirName\Paint.lnk","SUCCESS","Desired Access: Read Attributes, Delete, Disposition: Open, Options: Non-Directory File, Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened"
"7:35:00.0098873 PM","_iu14D2N.tmp","1616","QueryAttributeTagFile","C:\Users\testing\AppData\Roaming\CDirName\Paint.lnk","SUCCESS","Attributes: A, ReparseTag: 0x0"
"7:35:00.0098956 PM","_iu14D2N.tmp","1616","<Unknown>","C:\Users\testing\AppData\Roaming\CDirName\Paint.lnk","SUCCESS",""
"7:35:00.0099040 PM","_iu14D2N.tmp","1616","CloseFile","C:\Users\testing\AppData\Roaming\CDirName\Paint.lnk","SUCCESS",""
"7:35:00.0099720 PM","_iu14D2N.tmp","1616","QueryDirectory","C:\Users\testing\AppData\Roaming\CDirName","NO MORE FILES",""
"7:35:00.0099817 PM","_iu14D2N.tmp","1616","CloseFile","C:\Users\testing\AppData\Roaming\CDirName","SUCCESS",""
"7:35:00.0100469 PM","_iu14D2N.tmp","1616","CreateFile","C:\Users\testing\AppData\Roaming\CDirName","SUCCESS","Desired Access: Read Attributes, Delete, Synchronize, Disposition: Open, Options: Directory, Synchronous IO Non-Alert, Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened"
"7:35:00.0100652 PM","_iu14D2N.tmp","1616","QueryAttributeTagFile","C:\Users\testing\AppData\Roaming\CDirName","SUCCESS","Attributes: RD, ReparseTag: 0x0"
"7:35:00.0100727 PM","_iu14D2N.tmp","1616","<Unknown>","C:\Users\testing\AppData\Roaming\CDirName","CANNOT DELETE",""
"7:35:00.0100840 PM","_iu14D2N.tmp","1616","CloseFile","C:\Users\testing\AppData\Roaming\CDirName","SUCCESS",""
然后我尝试添加另一个RemoveDir
,usDone
但仍然给出:
"7:35:01.7108218 PM","_iu14D2N.tmp","1616","CreateFile","C:\Users\testing\AppData\Roaming\CDirName","SUCCESS","Desired Access: Read Attributes, Delete, Synchronize, Disposition: Open, Options: Directory, Synchronous IO Non-Alert, Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened"
"7:35:01.7108617 PM","_iu14D2N.tmp","1616","QueryAttributeTagFile","C:\Users\testing\AppData\Roaming\CDirName","SUCCESS","Attributes: RD, ReparseTag: 0x0"
"7:35:01.7108724 PM","_iu14D2N.tmp","1616","<Unknown>","C:\Users\testing\AppData\Roaming\CDirName","CANNOT DELETE",""
"7:35:01.7108875 PM","_iu14D2N.tmp","1616","CloseFile","C:\Users\testing\AppData\Roaming\CDirName","SUCCESS",""
解决方案
推荐阅读
- gremlin - 在 gremlin 中搜索多个属性的最佳方法是什么
- postgresql - 在 Manjaro 上自动启动 postgres
- python - 是否有任何对象不包含 __name__ 属性?
- system-verilog - System Verilog 中断言的可变延迟
- python - 用于构建 python 包的 setup.py 文件
- crc - CRC-16-CCITT的选择
- javascript - 如何将输入限制为数组中的单词之一?
- gatsby - Netlify 部署失败
- java - 为什么kafka消费者在poll()时不使用jdk InterruptedException?
- ffmpeg - 录制时音频/视频不同步