Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.07.31;
Скачать: [xml.tar.bz2];

Вниз

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

 
Гость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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.027 c
14-1121187204
Soft
2005-07-12 20:53
2005.07.31
Товарищи! Будьте бдительны! Террорист не дремлет!


4-1117626873
AlexTregubov
2005-06-01 15:54
2005.07.31
Как нарисовать рамку вокруг TEdit?


6-1113916300
Alpine
2005-04-19 17:11
2005.07.31
Как изменить соединение с интернотм по умолчанию ?


1-1121163862
ANB
2005-07-12 14:24
2005.07.31
Как достать текстовое значение Enumeration переменной ?


14-1120553020
DelphiN!
2005-07-05 12:43
2005.07.31
Web FTP Client





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский