Форум: "Основная";
Текущий архив: 2003.07.24;
Скачать: [xml.tar.bz2];
ВнизРекурсивного обход директории Найти похожие ветки
← →
cyberwolf (2003-07-11 00:17) [0]Необходима функция рекурсивного обхода директории с выводом её содержимого. Заранее спасибо.
← →
Makhanev A.S. (2003-07-11 00:19) [1]FindFirst, FindNext... F1
← →
cyberwolf (2003-07-11 00:33) [2]это я знаю... нужна-то функция, которая выводит уже готовый результат... саммому лень писать - мож у кого есть?
← →
dataMaster (2003-07-11 01:14) [3]Кажется так:
procedure ScanDir(StartDir: string; Mask:string; List:TStrings);
{
Пример вызова, параметры
1. имя папки
2. маска, по умолчанию *.*
3. хранилище для резульатат,
любой наследник от TString, например TStringList
}
var
SearchRec : TSearchRec;
begin
if Mask = "" then
Mask := "*.*";
if StartDir[Length(StartDir)] <> "\" then
StartDir := StartDir + "\";
if FindFirst(StartDir+Mask, faAnyFile, SearchRec) = 0 then
begin
repeat
Application.ProcessMessages;
if (SearchRec.Attr and faDirectory) <> faDirectory then
List.Add(StartDir + SearchRec.Name)
else
if (SearchRec.Name <> "..") and (SearchRec.Name <> ".") then
begin
List.Add(StartDir + SearchRec.Name + "\");
ScanDir(StartDir + SearchRec.Name+ "\",Mask,List);
end;
until FindNext(SearchRec) <> 0;
FindClose(SearchRec);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ListBox1.Items.Clear;
ScanDir("c:","",ListBox1.Items);
Label1.Caption := IntToStr(ListBox1.Items.Count);
end;
← →
Makhanev A.S. (2003-07-11 01:21) [4]http://delphibase.endimus.com/?action=viewfunc&topic=fileops&id=10046
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.07.24;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c