Форум: "Начинающим";
Текущий архив: 2006.04.30;
Скачать: [xml.tar.bz2];
ВнизРекурсивный обход папок,,, или не рекурсивный... Найти похожие ветки
← →
Dust © (2006-04-14 11:56) [0]Люди, поделитесь алгоритмом, голова не работает уже и времени нет. Нужно найти все файлы в папке и подпапках...
← →
Anatoly Podgoretsky © (2006-04-14 12:14) [1]Рекурсивный
← →
Kolan © (2006-04-14 12:18) [2]FindFirst итд. Полно в нете...
← →
Dmitrij_K (2006-04-14 12:19) [3]
Procedure ScanDir(Dir:string);
var SearchRec:TSearchRec;
begin
if Dir<>"" then if Dir[length(Dir)]<>"\" then Dir:=Dir+"\";
if FindFirst(Dir+"*.*", faAnyFile, SearchRec)=0 then
repeat
if (SearchRec.name=".") or (SearchRec.name="..") then continue;
if (SearchRec.Attr and faDirectory)<>0 then
ScanDir(Dir+SearchRec.name) //we found Directory: "Dir+SearchRec.name"
else
Showmessage(Dir+SearchRec.name); //we found File: "Dir+SearchRec.name"
until FindNext(SearchRec)<>0;
FindClose(SearchRec);
end;
------------------
www.DRKB.ru
← →
jack128 © (2006-04-14 12:36) [4]б-р-р-р.. try-finally чтоли поставили бы..
я таким шабломом пользуюсь:type
TIterateFileProc = procedure (const Filename: string;
const FFD: TWin32FindData; var Continue: boolean) of object;
function IterateFiles(StartDir: string; FileMask: string;
Callback: TIterateFileProc; Recurse: boolean = True): boolean;
var
ffd: TWIN32FindData;
ffh: THandle;
begin
Assert(Assigned(Callback));
if StartDir = "" then
raise Exception.Create("Введите директорию");
Result := True;
if StartDir[Length(StartDir)] <> "\" then
StartDir := StartDir + "\";
ffh := FindFirstFile(PChar(StartDir + FileMask), ffd);
if ffh <> INVALID_HANDLE_VALUE then
try
repeat
if not ((string(ffd.cFileName) = ".") or (string(ffd.cFileName) = "..")) then
begin
Callback(StartDir + ffd.cFileName, ffd, Result);
if not Result then Exit;
if Recurse and ((ffd.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) = FILE_ATTRIBUTE_DIRECTORY) then
begin
Result := IterateFiles(StartDir + ffd.cFileName, FileMask, Callback);
if not Result then Exit;
end;
end;
until not FindNextFile(ffh, ffd);
finally
Windows.FindClose(ffh);
end;
end;
← →
Dust © (2006-04-14 12:43) [5]угу, пасибо
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.04.30;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.013 c