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

Inno Setup问题:如何确保Program Files目录下文件非只读?

解决Inno Setup安装后文件/文件夹只读问题
  • 先处理源文件的只读属性
    检查本地Bundled_Files目录下的文件本身是否带有只读属性。如果源文件默认是只读的,Inno Setup会保留这个属性,仅设置权限无法让文件变为可写。可以手动选中所有文件,右键→属性→取消「只读」勾选;也可以用批处理批量清除:

    attrib -r "Bundled_Files\*" /s /d
    
  • 在[Files]段添加属性移除参数
    在现有[Files]配置中加入Attribs: -r,强制移除文件的只读属性,同时保留权限设置:

    [Files]
    Source: "Bundled_Files\*"; DestDir: "{commonpf64}\StudioLinked\Romplur\"; Flags: ignoreversion recursesubdirs createallsubdirs; Permissions: users-full; Attribs: -r;
    

    这里-r表示移除只读属性,若需设置其他属性(如隐藏)可搭配+h,多个属性用空格分隔。

  • 处理文件夹的只读标记(可选)
    Windows 10中文件夹的「只读」属性是特殊标记,主要影响子文件而非文件夹本身。若需彻底清除该标记,可在[Code]段添加安装后执行的脚本:

    [Code]
    procedure CurStepChanged(CurStep: TSetupStep);
    var
      TargetDir: string;
    begin
      if CurStep = ssPostInstall then
      begin
        TargetDir := ExpandConstant('{commonpf64}\StudioLinked\Romplur\');
        SetFileAttributes(TargetDir, GetFileAttributes(TargetDir) and not FILE_ATTRIBUTE_READONLY);
      end;
    end;
    

    这段代码会在安装完成后修改目标文件夹属性,移除只读标记。

  • 明确权限与属性的区别
    Permissions: users-full是赋予用户读写权限,而「只读属性」是文件本身的修改限制——二者是独立设置,需同时处理才能确保文件可写。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 18:15:37