Форум: "Основная";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
ВнизУдаление папки Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.04 c