AVZ 5. Руководство пользователя
×

16.35.11. procedure DeleteDirectory

procedure DeleteDirectory(ADirName : string);
 
Удаляет пустой каталог с указанным именем. Переданное в качестве параметра имя каталога автоматически нормализуется.
 
В имени файла допустимо указывать макросы, подробнее см. в разделе "макросы, допустимые в именах файлов"
 
Отсутствие каталога или невозможность его удаления не является ошибкой, успешность операции можно проверить при помощи функции DirectoryExists. Если в каталоге есть вложенные каталоги или файлы, то его удаление при помощи DeleteDirectory невозможно - следует предварительно удалить вложенные файлы и папки. Для рекурсивного удаления файлов и папок в данном случае можно применить функцию DeleteFileMask
 
Начиная с версии 5.xx у процедуры добавлено второй параметр:
 
procedure DeleteDirectory(ADirName : string; ASDFormula : string = '');
 
Параметр ASDFormula является необязательным (в результате сохраняется полная совместимость), и позволяет задать формулу необратимого удаления.  
 
Поддерживаемые коды операций:
 
E - выполняет проверку на наличие каталога. Если каталог отсутствует, то дальнейшая обработка прерывается. Данная операция обычно применяется в начале формулы.
W или Y - переименование каталога. Выполняется для того, чтобы усложнить восстановление, основанное на поиске каталога по его известному имени. Перед переименованием дата каталога заменяется на случайное значение. Код Y имеет аналогичный смысл для необратимого удаления файлов, W - применяется только для каталогов.
P - удаление привилегий каталога, сброс их на "всем разрешено все"
S - сброс кеша для диска, на котором размещен каталог.
 
Если у каталога имеются потоки, то для них будет применено удавление с помощью функции function DeleteFileSecure, которой передается формула из параметра ASDFormula