Как удалить каталог вместе со всеми содержащимися в нем файлами?

В примере стираются все файлы в каталоге и сам каталог. Чтобы удалить файл, помечанные только для чтения (read only) и занятые другими программами в момент удаления - напишите дополнительную процедуру.
procedure TForm1.Button1Click(Sender: TObject);
var
        DirInfo: TSearchRec;
        r: integer;
begin
        r := FindFirst('C:\Download\*.*', FaAnyfile, DirInfo);
        while r = 0 do
        begin
                if ((DirInfo.Attr and FaDirectory <> FaDirectory) and
                        (DirInfo.Attr and FaVolumeId <> FaVolumeID)) then
                if DeleteFile(pChar('C:\Download\' + DirInfo.Name))= false then
                        ShowMessage('Unable to delete: C:\Download\'+DirInfo.Name);
                r := FindNext(DirInfo);
        end;
        SysUtils.FindClose(DirInfo);
        if RemoveDirectory('C:\Download\') = false then
                ShowMessage('Unable to delete directory: C:\Download\');
end;
 
« Предыдущая статья   Следующая статья »