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

Вниз

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

 
Nagano   (2006-08-01 12:53) [0]

Как можно найти все файлы с определенным расширением в определенной папке и всех ее подпапках?


 
Джо ©   (2006-08-01 12:54) [1]

FindFirst, FindNext, FindClose. Поищи по форуму. Тут чуть ли не каждую неделю готовый код выкладывают.


 
Сергей М. ©   (2006-08-01 13:05) [2]

см. TOpenDialog + св-во Filter + событие OnIncludeItem


 
Darvin ©   (2006-08-01 17:16) [3]

Джо ©   (01.08.06 12:54) [1] + рекурсия по вложенным папкам


 
Ivolg ©   (2006-08-01 18:15) [4]

Вот неплохой алгоритм поиска:

Procedure TForm1.FindRecursive( Const path: String; Const mask: String);
Var
fullpath: String;
 Function Recurse( Var path: String; Const mask: String ): Boolean;
   Var
     SRec: TSearchRec;
     retval: Integer;
     oldlen: Integer;
   Begin
     Recurse := True;
     oldlen := Length( path );
     retval := FindFirst( path+mask, faAnyFile, SRec );
     While retval = 0 Do Begin
       If (SRec.Attr and (faDirectory or faVolumeID)) = 0 Then
       ListBox1.items.Add(path+srec.name);
       retval := FindNext( SRec );
     End;
     FindClose( SRec );
     If not Result Then Exit;
     retval := FindFirst( path+"*.*", faDirectory, SRec );
     While retval = 0 Do Begin
       If (SRec.Attr and faDirectory) <> 0 Then
         If (SRec.Name <> ".") and (SRec.Name <> "..") Then Begin
           path := path + SRec.Name + "\";
           If not Recurse( path, mask ) Then Begin
     
             Result := False;
             Break;
           End;
           Delete( path, oldlen+1, 255 );
         End;
       retval := FindNext( SRec );
     End;
     FindClose( SRec );
   End; { Recurse }
 Begin
   If path = "" Then
     GetDir(0, fullpath)
   Else
     fullpath := path;
   If fullpath[Length(fullpath)] <> "\" Then
     fullpath := fullpath + "\";
   If mask = "" Then
     Recurse( fullpath, "*.*" )
   Else
     Recurse( fullpath, mask );
 End;


 
StriderMan ©   (2006-08-01 18:21) [5]


>   retval := FindFirst( path+mask, faAnyFile, SRec );
>      While retval = 0 Do Begin
>        If (SRec.Attr and (faDirectory or faVolumeID)) =
> 0 Then
>        ListBox1.items.Add(path+srec.name);
>        retval := FindNext( SRec

здесь явно можно обойтись без retval



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

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

Наверх




Память: 0.47 MB
Время: 0.043 c
15-1153473735
PSPF2003
2006-07-21 13:22
2006.08.20
Поисковик кодера


15-1153645976
Der Nechk@ssoff
2006-07-23 13:12
2006.08.20
Монитор


15-1153382099
novoalex
2006-07-20 11:54
2006.08.20
Небольшой провайдер...


6-1144247999
cosmos
2006-04-05 18:39
2006.08.20
Как создать службу текстовых сообщений на подобие ICQ


1-1152018812
salexn
2006-07-04 17:13
2006.08.20
Рекурсивные процедуры