Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.08.20;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.043 c
2-1154029115
Leyhont
2006-07-27 23:38
2006.08.20
Гиперссылка


6-1144128262
CyMKuH
2006-04-04 09:24
2006.08.20
FTP клиент


1-1152192172
Oleon
2006-07-06 17:22
2006.08.20
Какое событие возникает при создании MDIChild?


2-1154511794
Gnoll
2006-08-02 13:43
2006.08.20
FindFirst, FindNext .....


3-1150262657
abhtr
2006-06-14 09:24
2006.08.20
Помогите составить запрос





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский