2015-07-22 4 views
0

Я пытаюсь выяснить, как я могу установить атрибуты по умолчанию в папках, созданных при создании проекта при создании проекта. Все мои поисковые запросы не дали никакого ответа.Delphi отладка атрибутов выходной папки

Например:

Скажем, у меня есть проект на Дельфи C:\MyProject\myProject.dpr. Когда я создам этот проект, Delphi создаст папки C:\MyProject\Win32\Debug\. Папки Win32\Debug\ относятся к Tools - Options - Environment Options - Delphi Options - Debug DCU Path.

Проблема заключается в том, что в папке delphi Debug установлен атрибут Read-Only. При том, что папка быть только для чтения, я получаю частые ошибки сборки, как:

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

Если я вручную снимите атрибут только для чтения, я могу построить мой проект штраф.

Значит, кто-нибудь знает, как сказать Delphi, чтобы создать эту папку, не будучи только для чтения?

(я использую Delphi X Е8, но я считаю, что это относится ко всем версиям и Windows 7 Professional)

ответ

1

Папки создаются с вызовом CreateDirectory, который проходит NULL как параметр lpSecurityAttributes. Как указано, это означает, что:

Если lpSecurityAttributes NULL, каталог получает дескриптор безопасности по умолчанию. ACL в дескрипторе безопасности по умолчанию для каталога наследуются из его родительского каталога.

Другими словами, настройки безопасности наследуются от родителя. Вы можете сделать эту директорию доступной для записи, сделав ее родительскую запись.

+1

Для ОП, я полагаю, следует надеяться, что его каталог проектов на самом деле не находится в корне C :. – MartynA

+0

Почему, @ Мартин? Ему не нужно делать корневую папку доступной для записи, просто каталог проекта. –

+0

@RobKennedy Я знаю, но я имел в виду, если бы он взял Дэвида «заставляя его родительскую запись» буквально – MartynA

0

Вы не имеете никакого контроля над тем, как создаются папки. Невозможно указать желаемые атрибуты. Тем не менее, вы можете попробовать использовать Pre-Build event для выполнения сценария командной строки, который вручную изменяет атрибуты папки перед началом компиляции.

Смежные вопросы