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

Вниз

Удаление папки   Найти похожие ветки 

 
Funnymind   (2004-05-06 05:17) [0]

Как насильно удалить папку со всеми вложенными в нее файлами.
Буду благодарен за множество вариантов...


 
miwa ©   (2004-05-06 05:25) [1]

1. SHFileOperation + F1
2. FindFirst+FindNext+FindClose+DeleteFile + F1


 
Delphin ©   (2004-05-06 11:54) [2]

Сначало удаляешь всё сожержимое из папки, а потом и саму папку, необходимые
команды тебе написал miwa ©   (06.05.04 05:25) [1]


 
Романов Р.В. ©   (2004-05-06 12:00) [3]


> Сначало удаляешь всё сожержимое из папки

SHFileOperation удаляет все сразу вместе с содержимым.


 
uuuh   (2004-05-06 12:17) [4]

Предлагаю старый девовский способ удалить рекурсивно все содержимое а потом и саму папку.


 
DVM ©   (2004-05-06 12:22) [5]

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;



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

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

Наверх




Память: 0.48 MB
Время: 0.029 c
1-1083904561
Sirus
2004-05-07 08:36
2004.05.23
Divizion by Zero.... Нету такого понятия???? :((


1-1083329590
jenbond
2004-04-30 16:53
2004.05.23
Конвертация компанента


1-1084352608
Trash
2004-05-12 13:03
2004.05.23
Отображение форм при "Крупном шрифте"


3-1083316895
Курдль
2004-04-30 13:21
2004.05.23
Апологетам "MS SQL Server" - что там с блокировками записей?


1-1084350344
glGLU
2004-05-12 12:25
2004.05.23
Menu