Главная страница
    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.46 MB
Время: 0.04 c
15-1153820130
Ling
2006-07-25 13:35
2006.08.20
Помогите найти


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


2-1154097089
miSTER-TWISTER
2006-07-28 18:31
2006.08.20
загрузить комп


10-1122960775
Dell3r
2005-08-02 09:32
2006.08.20
Файлы типа .doc в один файл


3-1150371269
Vital_k
2006-06-15 15:34
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский