【问题标题】:Delphi debug output folder attributesDelphi 调试输出文件夹属性
【发布时间】:2015-10-12 20:00:42
【问题描述】:

我试图弄清楚如何在 delphi 构建项目时创建的文件夹上设置默认属性。我所有的谷歌搜索都没有提供任何答案。

例如:

假设我在C:\MyProject\myProject.dpr 有一个德尔福项目。当我构建这个项目时,Delphi 将创建C:\MyProject\Win32\Debug\ 文件夹。 Win32\Debug\ 文件夹来自 Tools - Options - Environment Options - Delphi Options - Debug DCU Path

问题是delphi 创建的Debug 文件夹检查了只读属性。由于该文件夹是只读的,我经常遇到构建错误,例如:

[fatal error] could not create output file C:\MyProject\myProject.exe

如果我手动取消选中只读属性,我可以很好地构建我的项目。

那么 SO 上有没有人知道如何告诉 Delphi 创建这个文件夹而不是只读的?

(我使用的是 Delphi XE8,但我相信这适用于所有版本和 Windows 7 Professional)

【问题讨论】:

    标签: delphi windows-7 attributes delphi-xe8


    【解决方案1】:

    文件夹是通过调用CreateDirectory 创建的,该调用将NULL 作为lpSecurityAttributes 参数传递。据记载,这意味着:

    如果 lpSecurityAttributes 为 NULL,则目录获取默认安全描述符。目录的默认安全描述符中的 ACL 继承自其父目录。

    换句话说,安全设置是从父级继承的。您可以通过使其父目录可写来使该目录可写。

    【讨论】:

    • 看在 OP 的份上,我想应该希望他的项目目录不在 C: 的根目录中。
    • 为什么,@Martyn?他不需要为此使根文件夹可写,只需项目目录即可。
    • @RobKennedy 我知道,但我的意思是如果他从字面上理解大卫的“使其父级可写”
    • @David 谢谢,这一直困扰着我。
    【解决方案2】:

    您无法控制文件夹的创建方式。没有指定所需属性的选项。但是,您可以尝试使用Pre-Build event 执行命令行脚本,在编译开始之前手动更改文件夹属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-05
      • 1970-01-01
      • 1970-01-01
      • 2015-02-18
      • 1970-01-01
      • 2016-08-20
      • 2017-02-24
      相关资源
      最近更新 更多