Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.025 c
1-1151851802
AlexeyT
2006-07-02 18:50
2006.08.20
Глюк отрисовки (гориз. полосы) в TListView: ???


5-1137874955
Mih@s
2006-01-21 23:22
2006.08.20
TValueListEditor


2-1154497995
ExCode
2006-08-02 09:53
2006.08.20
форматирование кода delphi


2-1154198011
Aral
2006-07-29 22:33
2006.08.20
Вопрос о позиции каретки.


3-1150363571
Pe+erBuild
2006-06-15 13:26
2006.08.20
Фиксированые поля




   Наверх