Скрипты управления > Работа с файлами и папками > function  DeleteFile

function  DeleteFile

function  DeleteFile

Previous pageReturn to chapter overviewNext page

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.