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

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

Удаление [D7, WinXP]


Kor@l ©   (2004-04-03 19:37:00) 

Всем здарово мастера подскажите мне плз как удаоить папку
со всеми вложенными в неё файлами и папками.
                      %заранее спасибо%


DVM   (2004-04-04 20:41:00) [1]

function DeleteDirectory(const Path: string): boolean;
var
 FD : TWin32FindData;
 FH : THandle;
 PartialResult:Boolean;
 LPath:string;
begin
 Result := true;
 if Path='' then exit;
 if not(DirExists(Path)) then exit;
 LPath:=Path;
 FH := FindFirstFile( PChar( Path + '*.*' ), FD );
 repeat
   PartialResult := True;
   if (FH<>INVALID_HANDLE_VALUE) and (FD.cFileName <> string('.')) and
                                              (FD.cFileName<>string('..')) then
     if (FILE_ATTRIBUTE_DIRECTORY and FD.dwFileAttributes) <> 0 then
       PartialResult := DeleteDirectory(Path + FD.cFileName + '\')
     else
       if PartialResult then
             begin
               PartialResult := SetFileAttributes(PChar(Path + FD.cFileName),
                                                        FILE_ATTRIBUTE_NORMAL);
               if PartialResult then PartialResult := DeleteFile(Path + FD.cFileName);
             end;
   if not PartialResult then
     begin
       Result := False;
       Break;
     end;
 until FindNextFile(FH,FD) = false;
 FindClose(FH);
 if Result then
 begin
   Result := SetFileAttributes(PChar(LPath), FILE_ATTRIBUTE_NORMAL);
   if Result then
   begin
     {$IOCHECKS OFF}
     RmDir(LPath);
     {$IFDEF IOCHECKS_ON}
     {$IOCHECKS ON}
     {$ENDIF IOCHECKS_ON}
     Result := IOResult = 0;
   end;
 end;
end;


Vit@ly   (2004-04-04 20:38:00) [2]

Решение есть на UDDF.
Сегодя поздно, завтра постараюсь выслать (выложить).


Kor@l   (2004-04-04 18:51:00) [3]


> Anatoly Podgoretsky


va8r
s:String;
sh:TSHFileOpStruct;
begin
s:=extractfilepath(application.ExeName)+ComboBox2.Text;
sh.Wnd:=Application.Handle;
sh.wFunc:=FO_DELETE;
sh.pFrom:=PChar('D:\1..');
sh.pTo:=nil;
sh.fFlags:=FOF_NOCONFIRMATION;
sh.hNameMappings:=nil;
sh.lpszProgressTitle:=nil;
SHFileOperation(sh);

вот кароче пишу такой код
и если папка пуста то усё спакойно удаляеться ,а если в ней вложин какой то фаил или даже пустая папка то не чего не выходит
говарит что не указан путь до вложеной папки или файла.


Anatoly Podgoretsky   (2004-04-03 21:42:00) [4]

А как ты хочешь с диалогом или без, так и делай.


Kor@l   (2004-04-03 21:33:00) [5]


> Anatoly Podgoretsky

а разве диалога не выдаёт она


Anatoly Podgoretsky   (2004-04-03 19:52:00) [6]

ShFileOperation


Наверх

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