Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.09.10;
Скачать: CL | DM;

Вниз

Как удалить папку?   Найти похожие ветки 

 
Neket   (2006-08-20 18:51) [0]

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


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

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


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

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


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

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


 
ffo ©   (2006-08-20 19:30) [4]


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


На вот тебе

Удаление каталога со всем содержимым
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:37) [5]

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


 
DprYg ©   (2006-08-20 21:10) [6]



 
DprYg ©   (2006-08-20 21:11) [7]

Извиняюсь. 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;


 
ffo ©   (2006-08-20 22:18) [8]


> DprYg

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



Страницы: 1 вся ветка

Текущий архив: 2006.09.10;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.062 c
15-1155553096
Вафаньдянь
2006-08-14 14:58
2006.09.10
Разгон!


2-1156014482
Виталий Юрьевич
2006-08-19 23:08
2006.09.10
Обработка ошибок Indy. собственно как поймать?


2-1156289432
B.T.R.
2006-08-23 03:30
2006.09.10
RichEdit-RTF


2-1155981044
C@N
2006-08-19 13:50
2006.09.10
NMSMTP и Mail.ru


1-1154061576
Константин_
2006-07-28 08:39
2006.09.10
Можно ли запретить перерисовку формы до определенного момента?