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

Вниз

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

 
Гость2   (2005-07-14 12:51) [0]

Вопрос: Как удалить в папке все файлы и поддиректории?


 
Fay ©   (2005-07-14 12:52) [1]

2 Гость2   (14.07.05 12:51)
1) По очереди руками
2) SHFileOperation


 
Kolan ©   (2005-07-14 13:08) [2]

Удаление каталога с подкаталогами

Способ 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
Чтобы вначале "\\" было...иначе не будет удалять диры из корня


 
Igor_thief   (2005-07-14 13:09) [3]

Пример кода можно найти в faq.


 
Kolan ©   (2005-07-14 13:17) [4]


> Igor_thief   (14.07.05 13:09) [3]


Это наверно он и есть.


 
begin...end ©   (2005-07-14 13:17) [5]

> Kolan ©   (14.07.05 13:08) [2]
> if SearchRec.Attr = faDirectory then

Фтопку.

> Igor_thief   (14.07.05 13:09) [3]

Он загнулся.


 
Kolan ©   (2005-07-14 13:18) [6]


> begin...end ©   (14.07.05 13:17) [5]


Не моё. Все возможно...



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

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

Наверх




Память: 0.48 MB
Время: 0.025 c
14-1121020009
Фонарь
2005-07-10 22:26
2005.07.31
Кто и как придумывает слова?


1-1121390392
qwerte
2005-07-15 05:19
2005.07.31
Почему поиск не раболтает?


11-1100812136
dimaxx
2004-11-19 00:08
2005.07.31
Программный выбор пункта в KOLListView


3-1118916600
А
2005-06-16 14:10
2005.07.31
Как после ClientDataSet.Open отобразить все данные в DBGrid?


10-1098286030
GanibalLector
2004-10-20 19:27
2005.07.31
"как бы" утечка ...