function DeleteFileMask

function DeleteFileMask

Previous pageReturn to chapter overviewNext page

function DeleteFileMask(ADir, AMask : string; ARecurse : boolean; ASDFormula : string := '') : boolean;

 

Выполняет поиск и удаление файлов в папке ADir, имена которых соответствуют маске  AMask. Параметр ARecurse управляет отработкой вложенных каталогов - если ARecurse = true, то будет выполнен рекурсивный обход папок начиная от заданной и в каждой из папок будет выполнен поиск и удаление файлов по маске AMask. После завершения обработки папки в данном случае производится проверка, остались ли в ней файлы - если файлов не осталось, то папка автоматически удаляется. Если ARecurse = false, то поиск и удаление файлов производится только в заданной папке.

В параметре AMask можно указать одну или несколько масок. В случае задания нескольких масок они разделяются пробелами, запятыми или точкой с запятой. Т.е. данный варианты задания маски являются эквивалентными:

*.exe;*.dll;*.com

*.exe,*.dll,*.com

*.exe *.dll *.com

 

В имени папки ADir допустимо указывать макросы, подробнее см. в разделе "макросы, допустимые в именах файлов"

 

Параметр ASDFormula задает алгоритм необратимого удаления файла. По умолчанию алгоритм не задан и производится обычное удаление файла. В случае, если алгоритм задан, то выполняется необратимое удаление всех попадающих под маску файлов путем вызова DeleteFileSecure для каждого удаляемого файла. Важно отметить, что необратимое удаление может идти на порядки медленнее обычного - скорость необратимого удаления зависит от заданного алгоритма.

 

На заметку:

Данная функция опасна и может серьезно повредить системе в случае задания некорректных параметров. Поэтому перед применением функции рекомендуется тщательно проверить ее аргументы.

На заметку:

Несмотря на то, что в параметре ADir поддерживаются макросы, их следует использовать с особой осторожностью. Риск состоит в том, что используемая в макросе переменная окружения может быть установлена некорректно.

 

Совместимость: AVZ 4.28 и выше; параметр ASDFormula появился начиная с версии 4.32 (при этом параметр содержит значение по умолчанию и сохраняется полная совместимость с версией 4.28)

 

Примеры:

 

begin

// Очистка папки

DeleteFileMask('c:\TestDir', '*.*', true);

end.

 

 

begin

// Очистка папки - необратимое удаление файлов

DeleteFileMask('c:\TestDir', '*.*', true, '01ARX');

end.