Форум: "WinAPI";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
ВнизУдаление Найти похожие ветки
← →
Kor@l © (2004-04-03 19:37) [0]Всем здарово мастера подскажите мне плз как удаоить папку
со всеми вложенными в неё файлами и папками.
%заранее спасибо%
← →
Anatoly Podgoretsky © (2004-04-03 19:52) [1]ShFileOperation
← →
Kor@l © (2004-04-03 21:33) [2]
> Anatoly Podgoretsky
а разве диалога не выдаёт она
← →
Anatoly Podgoretsky © (2004-04-03 21:42) [3]А как ты хочешь с диалогом или без, так и делай.
← →
Kor@l © (2004-04-04 18:51) [4]
> Anatoly Podgoretskyva8r
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);
вот кароче пишу такой код
и если папка пуста то усё спакойно удаляеться ,а если в ней вложин какой то фаил или даже пустая папка то не чего не выходит
говарит что не указан путь до вложеной папки или файла.
← →
Vit@ly © (2004-04-04 20:38) [5]Решение есть на UDDF.
Сегодя поздно, завтра постараюсь выслать (выложить).
← →
DVM © (2004-04-04 20:41) [6]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 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.036 c