Главная страница
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.048 c
1-1153766697
AlexeyT
2006-07-24 22:44
2006.09.10
Отклик на команду XP "Каскадом"


1-1152989009
!aLeXa!
2006-07-15 22:43
2006.09.10
Как написать мультиязычную программу?


2-1156266682
she
2006-08-22 21:11
2006.09.10
Меньше нельзя


2-1155630742
GEM
2006-08-15 12:32
2006.09.10
Calculated field - не удается правильно вычислить


2-1156314634
Андрей Пазик
2006-08-23 10:30
2006.09.10
Создание кросс-массива