Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Удаление каталога


Автор: Vit 25.4.2002, 13:56
Функция для удаления каталогов, взята из рассылки "Мастера DELPHI. Новости мира компонент, FAQ, статьи..." Я ее не проверял, но похоже она рекурсивно заходит во все вложенные подкаталоги и удаляет их содержимое.

Код

Function MyRemoveDir(sDir : String) : Boolean;
var
iIndex : Integer;
SearchRec : TSearchRec;
sFileName : String;
begin
Result := False;
sDir := sDir + '\*.*';
iIndex := FindFirst(sDir, faAnyFile, SearchRec);

while iIndex = 0 do begin
 sFileName := ExtractFileDir(sDir)+'\'+SearchRec.Name;
 if SearchRec.Attr = faDirectory then begin
  if (SearchRec.Name <> '' ) and
  (SearchRec.Name <> '.') and
  (SearchRec.Name <> '..') then
   MyRemoveDir(sFileName);
 end else begin
  if SearchRec.Attr <> faArchive then
   FileSetAttr(sFileName, faArchive);
  if NOT DeleteFile(sFileName) then
   ShowMessage('Could NOT delete ' + sFileName);
 end;
 iIndex := FindNext(SearchRec);
end;

FindClose(SearchRec);

RemoveDir(ExtractFileDir(sDir));
Result := True;
end;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)