|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Не удаляются файлы
Задача - удалить каталог. В нем много подкаталогов. Все удаляется, кроме одной папки. Какая может быть причина. Файлы не системные.
Вот функции, которыми пытаюсь удалять: Код:
function DeleteDir(Dir: string): boolean; var Found: integer; SearchRec: TSearchRec; begin result := false; if IOResult <> 0 then ChDir(Dir); if IOResult <> 0 then begin ShowMessage('Не могу войти в каталог: ' + Dir); exit; end; Found := FindFirst('*.*', faAnyFile, SearchRec); while Found = 0 do begin if (SearchRec.name <> '.') and (SearchRec.name <> '..') then if (SearchRec.Attr and faDirectory) <> 0 then begin if not DeleteDir(SearchRec.name) then exit; end else if not DeleteFile(SearchRec.name) then begin ShowMessage('Не могу удалить файл: ' + SearchRec.name+'!'); exit; end; Found := FindNext(SearchRec); end; FindClose(SearchRec); ChDir('..'); RmDir(Dir); result := IOResult = 0; end; Код:
procedure RemoveAll(path: string); var sr: TSearchRec; begin if FindFirst(path + '\*.*', faAnyFile, sr) = 0 then begin repeat if sr.Attr and faDirectory = 0 then begin DeleteFile(path + '\' + sr.name); end else begin if pos('.', sr.name) <= 0 then RemoveAll(path + '\' + sr.name); end; until FindNext(sr) <> 0; end; FindClose(sr); RemoveDirectory(PChar(path)); end; |