16.35.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.