![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как удалить папку? [D7]
Neket © (2006-08-20 18:51:00)Как удалить папку вместе с содержимым?
Если использовать RMDir то возможно удаление только в том случае если папка пустая.
ffo (2006-08-20 22:18:00) [1]
> DprYg
А почему бы и нет. И себе перепишу
DprYg (2006-08-20 21:11:00) [2]Извиняюсь.
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;
DprYg (2006-08-20 21:10:00) [3]
Neket (2006-08-20 19:37:00) [4]Спасибо огромное. Очень помог.
ffo (2006-08-20 19:30:00) [5]
> Как удалить папку?
На вот тебе
Удаление каталога со всем содержимым
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:18:00) [6]Наро помогите. Срочно нада.
Neket (2006-08-20 19:10:00) [7]А можно поподробнее а то там в SHELAPi только описание этой функции для DLL.
Dmitrij_K (2006-08-20 18:58:00) [8]Ищи функцию SHFileOperation shellapi.pas