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

16.33.20. function  DeleteFile

function  DeleteFile(AFileName : string; AMode : string = '32') : boolean;
 
Удаляет файл с именем AFileName. Возвращает TRUE в случае успешного удаления и FALSE в случае ошибки.
 
Второй параметр необязателен и поддерживается начиная с версии 4.41 - он позволяет управлять файловым редиректором на 64bit системах.  Возможны варианты:
32 - удаление производится при включенном редиректоре
64 - удаление производится при выключенном редиректоре
32,64 - делается две попытки удаления - при включенном и выключенном редиректоре.
 
В имени файла допустимо указывать макросы, подробнее см. в разделе "макросы, допустимые в именах файлов"
 
Указание несуществующего файла или пустой строки не является ошибкой.
 
В случае ошибки удаления файла обычным удалением применяется отложенное удаление. Имена удаляемых файлов автоматически добавляются в список файлов, который используется функцией ExecuteSysClean.
 
 
Начиная с версии 4.32 функция DeleteFile автоматически вызывает функцию FSResetSecurity  в случае неуспешного удаления файла, после чего повторяет попытку удаления файла. Начиная с версии 5.00 данная логика немного изменена - вызов  FSResetSecurity и повторное удаление файла выполняется при условии, что параметр AutoResetACL=Y (это значение параметра по умолчанию, как следствие, поведение DeleteFile по умолчанию не отличается от ее реализации в 4.32). Однако если задать AutoResetACL=N, то попыток сброса ACL файлов не производится.
 
 
Пример:
 
begin
  DeleteFile('%WinDir%\trojan.exe');
end.