Текущий архив: 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.45 MB
Время: 0.042 c