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

新软件安装前删除整个目录:Inno Setup代码失效问题排查

Inno Setup删除目录代码无效的问题分析

你的代码主要有两个问题,导致删除操作没生效:

1. 自定义的删除过程没被调用

你写了Deleting这个删除过程,但Inno Setup不会自动运行你自定义的函数,必须把删除逻辑绑定到安装流程的特定事件里,比如安装正式开始前的步骤。

2. 可能存在权限不足的情况

C:\Localdata属于系统级目录,若安装程序未以管理员身份运行,大概率没有权限删除该目录内的内容,需确保安装包以管理员权限启动。

修正后的代码示例

把删除逻辑放到CurStepChanged事件中,在正式安装(ssInstall步骤)之前执行删除操作:

[Code]
procedure CurStepChanged(CurStep: TSetupStep);
begin
  // 进入安装步骤前执行删除
  if CurStep = ssInstall then
  begin
    DelTree('C:\Localdata\SPMPET', True, True, True);
  end;
end;

额外注意事项

  • 原代码里DelTree的路径多嵌套了一层括号,虽然语法上不报错,但完全没必要,去掉后代码更简洁。
  • 如果目标目录被其他进程占用,DelTree会删除失败,这种情况可以添加错误捕获逻辑,提示用户关闭占用该目录的程序。

内容的提问来源于stack exchange,提问作者Yusuke Sakaino

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 16:24:59