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

Вниз

Поиск файлов в Delphi   Найти похожие ветки 

 
123000 ©   (2002-09-28 20:26) [0]

Вот процедура поиска файлов *.txt на диске "C:\" :

procedure TForm1.Button1Click(Sender: TObject);
var F: TSearchRec;
begin
if FindFirst("C:\*.txt", faAnyFile, F)=0 then
begin
Memo1.lines.Add(F.Name);
while FindNext(F) = 0 do Memo1.lines.Add(F.Name);
end;
FindClose(F);
end;


А как сделать так, чтобы поиск производился не только в C:\, а на всем жестком диске?


 
Song ©   (2002-09-28 23:32) [1]

Надо обрабатывать вложенные каталоги, например, рекурсией. В FAQ есть пример.


 
Anatolyk   (2002-09-30 12:58) [2]

//я для себя писал нечто вроде ....


procedure TForm1.Directory(Root: String);
var
sr: TSearchRec;
FileAttrs, i, ipos: Integer;
S: String;
tmpStr: Pchar;
dir, base: String;
begin
ChDir(Root); //откуда начать
FileAttrs := faAnyFile;
if FindFirst("*.*", FileAttrs, sr) = 0 then
begin
repeat
if (sr.Attr and FileAttrs) = sr.Attr then
begin
if not((Sr.Name = ".") or (Sr.Name = "..")) then
if (sr.Attr and faDirectory) = faDirectory then //найден каталог?
begin
Directory(Root+ "\" + sr.Name); //Заходим в него (это типа рекурсивный вызов)
ChDir(".."); //и возвращаемся
end
else //если же это файл...
begin
//пишем, например в к.-нибудь файл
WriteLn(FileVar,Root + "\" + sr.Name);
Flush(FileVar);
end;
end;
until FindNext(sr) <> 0;
FindClose(sr);
end;





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

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

Наверх




Память: 0.47 MB
Время: 0.01 c
14-32012
RV
2002-09-17 09:23
2002.10.10
Кто знает такой копировльный аппарат, как Gestetner5375?


4-32094
Nebuchadnezzar
2002-08-27 18:04
2002.10.10
SHBrowseForFolder и SHGetPathFromIDList


1-31833
вапывавп
2002-09-28 14:54
2002.10.10
римское исчисление


3-31586
Pavel Denisov
2002-09-18 10:42
2002.10.10
DBGrid скроллинг


1-31839
Yank
2002-09-26 21:03
2002.10.10
Динамические массивы