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

Вниз

Как удалить все файлы и папки по указанному пути?   Найти похожие ветки 

 
z_man ©   (2004-12-06 22:29) [0]

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


 
Kolan ©   (2004-12-06 22:37) [1]

Способ 1: проход по дереву каталогов (Функция для удаления каталогов, взята из рассылки "Мастера DELPHI. Новости мира компонент, FAQ, статьи..." - собственно код аналогичен написанному мной коду по рекурсивному проходу каталогов здесь)

Function MyRemoveDir(sDir : String) : Boolean;  
var  

iIndex : Integer;  

SearchRec : TSearchRec;  

sFileName : String;  

 
begin  
Result := False;  

sDir := sDir + "\*.*";  

iIndex := FindFirst(sDir, faAnyFile, SearchRec);  

while iIndex = 0 do  

 
begin  

 
sFileName := ExtractFileDir(sDir)+"\"+SearchRec.Name;  

if SearchRec.Attr = faDirectory then  

 
begin  

 
if (SearchRec.Name <> "" ) and (SearchRec.Name <> ".") and (SearchRec.Name <> "..") then MyRemoveDir(sFileName);  

 
end  

 
else  

 
begin  

 
if SearchRec.Attr <> faArchive then FileSetAttr(sFileName, faArchive);  

if NOT DeleteFile(sFileName) then ShowMessage("Could NOT delete " + sFileName);  

 
end;  

 
iIndex := FindNext(SearchRec);  

 
end;  

 
FindClose(SearchRec);  

RemoveDir(ExtractFileDir(sDir));  

Result := True;  

 
end;

Способ 2: Использование ShellApi

uses ShellApi;
...
var sh : SHFILEOPSTRUCT;
begin
...  

sh.Wnd := Application.Handle;  

sh.wFunc := FO_DELETE;  

sh.pFrom := "c:\\test\0";  

sh.pTo := nil;  

sh.fFlags := FOF_NOCONFIRMATION or FOF_SILENT;  

sh.hNameMappings := nil;  

sh.lpszProgressTitle := nil;  

 

SHFileOperation (sh);  

...  

 

Надо путь писать : c:\\test\dfg
Чтобы вначале "\\" было...иначе не будет удалять диры из корня

Автор ответа: Baa
Взято с Vingrad.ru http://forum.vingrad.ru


 
Anatoly Podgoretsky ©   (2004-12-06 22:58) [2]

shfileoperation


 
TButton ©   (2004-12-07 01:12) [3]


> Как удалить все файлы и папки по указанному пути без подтверждения
> на удаление?

а путь случаем не c:\windows?


 
uny ©   (2004-12-07 07:12) [4]

ха, я тоже совсем давно думал, что подтверждение само появляется и файлы автоматом в корзину удаляются:)



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

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

Наверх




Память: 0.48 MB
Время: 0.023 c
14-1101696360
Думкин
2004-11-29 05:46
2004.12.19
С днем рождения! 28 ноября


3-1101115642
RRRulex
2004-11-22 12:27
2004.12.19
обновление записи набора данных из 2-х связанных таблиц


14-1101537763
Greka
2004-11-27 09:42
2004.12.19
Русский шрифты в англ Windows.


4-1099560670
++MASTER++
2004-11-04 12:31
2004.12.19
Отключение всех процессов


1-1102354684
Gennadiy
2004-12-06 20:38
2004.12.19
Delphi и The Bat