Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как удалить папку? [D7]


Neket ©   (2006-08-20 18:51:00) 

Как удалить папку вместе с содержимым?
Если использовать RMDir то возможно удаление только в том случае если папка пустая.


ffo   (2006-08-20 22:18:00) [1]


> DprYg

А почему бы и нет. И себе перепишу


DprYg   (2006-08-20 21:11:00) [2]

Извиняюсь. function Delete(const FileName: string): integer;
var
 SHF: TSHFileOpStruct;
begin
  with SHF do begin
   Wnd := 0;
   pFrom := PChar(FileName);
   pTo := nil;
   wFunc := FO_DELETE;
   fFlags := FOF_ALLOWUNDO;
 end;
 Result := SHFileOperation(SHF);
 if Result<>0 then
   if SHF.fAnyOperationsAborted
     then Result := 1
     else Result := 2;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 Delete('...');
end;


DprYg   (2006-08-20 21:10:00) [3]


Neket   (2006-08-20 19:37:00) [4]

Спасибо огромное. Очень помог.


ffo   (2006-08-20 19:30:00) [5]


>  Как удалить папку?


На вот тебе

Удаление каталога со всем содержимым
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 TForm1.Button1Click(Sender: TObject);
begin
DeleteDir('C:\WINDOWS\Рабочий стол\123');
end;


Neket   (2006-08-20 19:18:00) [6]

Наро помогите. Срочно нада.


Neket   (2006-08-20 19:10:00) [7]

А можно поподробнее а то там в SHELAPi только описание этой функции для DLL.


Dmitrij_K   (2006-08-20 18:58:00) [8]

Ищи функцию SHFileOperation shellapi.pas


Наверх

Титульная страница Поиск, карта сайта Написать письмо