Эта секция является необязательной. Позволяет определить любые дополнительные каталоги, которые программа установки создаст автоматически помимо папки приложения, которую выбрал пользователь. Создание подкаталогов для папки приложения является общим случаем использования этой секции.
Заметьте, что вам не нужно явно создавать каталоги перед установкой в них файлов с помощью секции [Files]. Эта секция, прежде всего, полезна для создания пустых каталогов.
Пример секции [Dirs]:
[Dirs] Name: "{app}\data" Name: "{app}\bin"
В приведенном выше примере после того, как программа установки создаст каталог приложения, в ней будут созданы два подкаталога.
Ниже приведен список поддерживаемых параметров:
Имя создаваемого каталога, которое обычно начинается с одной из констант каталога.
Name: "{app}\MyDir"
Определяет дополнительные атрибуты для каталога. Допустимыми атрибутами являются следующие: readonly, hidden, system, notcontentindexed. Если этот параметр не указан, программа установки не назначает каталогу никаких специальных атрибутов.
Если каталог уже существует, заданные атрибуты будут объединены с уже существующими атрибутами каталога.
Attribs: hidden system
Определяет дополнительные разрешения для доступа к каталогу на основе ACL (список управления доступом). Не рекомендуется использовать этот параметр, если вы не знакомы с ACL, потому что любое его изменение может негативно повлиять на безопасность системы.
Для эффективной работы параметра каталог должен быть расположен в файловой системе, поддерживающей ACL (например NTFS), а текущий пользователь должен иметь возможность изменять разрешения каталога. Если эти условия не выполняются, никаких сообщений об ошибках показаны не будут и разрешения не вступят в силу.
Этот параметр должен использоваться только для каталогов приложения. Никогда не изменяйте ACL каталогов верхнего уровня, таких как {sys} или {commonpf}, иначе безопасность системы пользователя окажется под угрозой.
Кроме того, рекомендуется избегать использования этого параметра для предоставления доступа на запись в каталоги, содержащих программные файлы. Например, предоставление доступа everyone-modify к каталогу {app} позволит непривилегированным пользователям вмешиваться в программные файлы вашего приложения, что создаст потенциальную угрозу безопасности. (Тем не менее, вполне безопасно изменить разрешения для подкаталога в папке вашего приложения, который не содержит программных файлов, например, {app}\data.)
Указанные разрешения устанавливаются независимо от того, существовал ли каталог до установки.
Параметр может содержать один или более значений, разделённых пробелами, в следующем формате:
<идентификатор пользователя или группы>-<тип доступа>
В секции [Dirs] поддерживаются следующие типы доступа:
Предоставляет разрешение "Полное управление", аналогичное modify (см. ниже), но дополнительно позволяет указанному пользователю/группе стать владельцем каталога и изменить его разрешения. Используйте как можно реже; обычно modify будет достаточно.
Предоставляет разрешение "Изменить", которое позволяет указанному пользователю/группе читать, выполнять, создавать, изменять и удалять файлы в каталоге и его подкаталогах.
Предоставляет разрешение "Чтение и запуск", которое позволяет указанному пользователю/группе читать и выполнять файлы в каталоге и его подкаталогах.
Permissions: users-modify
Этот параметр представляет собой набор дополнительных опций. Допускается использовать несколько опций, разделяя их пробелами. Поддерживаются следующие опции:
Указывает программе установки создать обычный каталог, но затем, когда установка будет завершена (или прервана), удалить его, если он будет пуст. Этот флаг может быть полезным для извлечения временных данных, необходимых программе, выполняемой в секции [Run].
Этот флаг не приведёт к удалению каталогов, которые уже существовали до установки.
Указывает программе установки включить NTFS сжатие каталога. Если по какой-либо причине применить состояние сжатия не удалось (например, если сжатие не поддерживается файловой системой), то никаких сообщений об ошибке показано не будет.
Если каталог уже существует, то состояние сжатия любых файлов, находящихся в каталоге, не будет изменено.
Указывает программе удаления всегда выполнять попытку удаления каталога, если он пуст. Обычно деинсталлятор пытается удалить каталог только в том случае, если он не существовал до начала установки.
Указывает программе удаления не выполнять попытку удаления каталога. По умолчанию деинсталлятор удаляет любой каталог, указанный в секции [Dirs], если он пуст.
Указывает программе установки отключить NTFS сжатие каталога. Если по какой-либо причине применить состояние сжатия не удалось (например, если сжатие не поддерживается файловой системой), то никаких сообщений об ошибке показано не будет.
Если каталог уже существует, то состояние сжатия любых файлов, находящихся в каталоге, не будет изменено.
Flags: uninsneveruninstall