Inno Setup - 如何设置文件夹的完全权限,而不仅仅是它的内容
Posted
技术标签:
【中文标题】Inno Setup - 如何设置文件夹的完全权限,而不仅仅是它的内容【英文标题】:Inno Setup - How to set full permission on a folder, not just for it's contents 【发布时间】:2013-07-09 21:11:23 【问题描述】:我使用 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
这将授予对 logs
文件夹中所有文件的完全权限,但对文件夹本身没有权限。因此,当我的应用程序尝试在该文件夹中创建新的日志文件时,它会失败。
我怎样才能设置文件夹的完全权限,而不仅仅是文件夹中的现有文件?
【问题讨论】:
same as here
适用于您。
@TLama 感谢您的链接,我会尝试并返回结果
尽可能避免使用完全权限并改用修改。
【参考方案1】:
只需使用以下代码对我有用,我认为它更安全:
[Dirs]
Name: "app\logs"; Permissions: users-full
【讨论】:
您对“用户”而不是“每个人”的看法是正确的。尽管如此,正如链接帖子所说,“完整”可能是不必要的。事实上,我的应用程序只有在我将权限设置为“修改”后才能运行,因为系统不允许我将权限设置为“完整”。 您的解决方案是最简单的,对我来说效果很好!【参考方案2】:在 [Dirs] 部分下为 logs
文件夹设置权限对我有用:
[Dirs]
Name: "app";
Name: "app\logs"; Permissions: everyone-full
[Files]
Source: logs\*; DestDir: app\logs\; Flags: ignoreversion recursesubdirs createallsubdirs; Permissions: everyone-full
但是,就像this post 一样,我不确定这是否是正确的做法。
【讨论】:
everyone-full 可能太多了,从文档看来 users-modify 就足够了。 jrsoftware.org/ishelp/index.php?topic=dirssectionjrsoftware.org/ishelp/index.php?topic=filessection @Joël Cool。感谢您提及修改权限和文档。以上是关于Inno Setup - 如何设置文件夹的完全权限,而不仅仅是它的内容的主要内容,如果未能解决你的问题,请参考以下文章
Inno SetupCreateProcess 失败:代码 740(Inno Setup打包的程序提升为管理员权限)(转)