You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Inno Setup卸载时生成的iu-....tmp文件夹如何删除?

解决Inno Setup卸载后残留iu-....tmp临时文件夹的问题

Inno Setup执行卸载流程时,会在AppData\Local\Temp路径下生成命名格式为iu-....tmp的临时文件夹。按官方设计,这类文件夹应在系统重启后自动删除,但实际场景中常出现残留情况。即便在卸载事件函数DeinitializeUninstall()中调用DelTree(),也无法彻底解决问题。以下是可行的解决方案:

  • 标记为重启后延迟删除
    手动调用DelTree()失败通常是因为卸载过程中仍有进程占用临时文件夹,改用Inno Setup的延迟删除函数更可靠。示例代码:

    procedure DeinitializeUninstall();
    var
      TempPath: String;
      FindRec: TFindRec;
    begin
      TempPath := ExpandConstant('{tmp}');
      if FindFirst(TempPath + '\iu-*.tmp', FindRec) then
      begin
        repeat
          if (FindRec.Attributes and FILE_ATTRIBUTE_DIRECTORY) <> 0 then
          begin
            AddDelayedDirectory(TempPath + '\' + FindRec.Name, 0);
          end;
        until not FindNext(FindRec);
        FindClose(FindRec);
      end;
    end;
    

    该方法会将目标文件夹标记为系统重启后删除,避开进程占用的问题。

  • 排查并释放进程占用
    用Process Explorer等工具检查是否有进程仍在占用iu-....tmp内的文件。若存在占用,可在卸载前通过脚本终止相关进程,或在DeinitializeUninstall()中等待进程释放后再尝试删除。

  • 确保卸载程序拥有管理员权限
    权限不足也可能导致删除失败,在Inno Setup脚本的[Setup]段添加配置强制获取管理员权限:

    PrivilegesRequired=admin
    
  • 遍历Temp目录强制清理
    如果{tmp}变量未指向目标路径,可直接遍历AppData\Local\Temp目录,尝试直接删除失败后再标记延迟删除:

    procedure DeinitializeUninstall();
    var
      TempDir: String;
      FindRec: TFindRec;
    begin
      TempDir := ExpandConstant('{userappdata}\Local\Temp');
      if FindFirst(TempDir + '\iu-*.tmp', FindRec) then
      begin
        repeat
          if (FindRec.Attributes and FILE_ATTRIBUTE_DIRECTORY) <> 0 then
          begin
            if not DelTree(TempDir + '\' + FindRec.Name, True, True, True) then
            begin
              AddDelayedDirectory(TempDir + '\' + FindRec.Name, 0);
            end;
          end;
        until not FindNext(FindRec);
        FindClose(FindRec);
      end;
    end;
    

内容的提问来源于stack exchange,提问作者Vijay Adhithya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 03:32:34