Inno Setup - 如何设置文件夹的完全权限,而不仅仅是它的内容

Cor*_*lia 14 directory permissions inno-setup

我用Inno Setup创建的工具包可以安装我的应用程序C:\Program Files\MyApp.

当我的应用程序启动时,它会尝试创建新的日志文件,C:\Program Files\MyApp\logs\但它失败了.

在我的Inno脚本中,我有以下设置:

[Dirs]
Name: "{app}";

[Files]
Source: logs\*; DestDir: {app}\logs\; Flags: ignoreversion recursesubdirs createallsubdirs; Permissions: everyone-full
Run Code Online (Sandbox Code Playgroud)

这为文件logs夹内的所有文件提供了完全权限,但不对文件夹本身赋予权限.因此,当我的应用程序尝试在该文件夹中创建新的日志文件时,它会失败.

我如何设置文件夹的完整权限,而不仅仅是在其中的现有文件?

Cor*_*lia 17

logs在[Dirs]部分下设置文件夹的权限对我有用:

[Dirs]
Name: "{app}"; 
Name: "{app}\logs"; Permissions: everyone-full

[Files]
Source: logs\*; DestDir: {app}\logs\; Flags: ignoreversion recursesubdirs createallsubdirs; Permissions: everyone-full
Run Code Online (Sandbox Code Playgroud)

但是,正如在这篇文章中,我不确定这是否是正确的方法.

  • every-full 可能太多了,从文档看来 users-modify 就足够了。http://www.jrsoftware.org/ishelp/index.php?topic=dirssection http://www.jrsoftware.org/ishelp/index.php?topic=filessection (3认同)

小智 10

只需使用以下代码对我有用,我认为它更安全:

[Dirs]
Name: "{app}\logs"; Permissions: users-full
Run Code Online (Sandbox Code Playgroud)