| Цитата(Quadr0 @ 2.6.2005, 20:58) | |
| Цитата | | Цитата(Albinos_x @ 2.6.2005, ) | | если не ошибаюсь папки он пропускает... |
ОН НЕ пропускает папки, если параметр задан faAnyFile и расширение *.* |
если по внимательней посмотреть, то
| Код | ... if FindFirst(filepath+'*.*', faanyfile, sr) = 0 then begin repeat if sr.Attr <> faDirectory then begin MyFileName:=sr.Name; MyFileName:=sr.Name; MyFileSize:=inttostr(sr.Size); MyFileTime:=DateTimeToStr(FileDateToDateTime(FileAge(filepath+sr.Name))); memo1.Lines.Add(MyFileName+' '+MyFileSize+' '+MyFileTime+' '+FilePath); end until FindNext(sr) <> 0; ...
|
В коде папки пропускаются (sr.Attr <> faDirectory) и не добавляются в список найденных файлов...
| Цитата | | Цитата(Albinos_x @ 2.6.2005, ) | | делать рекурсивный вызов этой функции... |
Проще говоря, выдели поиск в отдельную процедуру и при обнаружении папки вызывай процедуру из самой процедуры:
| Код | procedure SearchFiles(const Path: string); var ... begin ... if ExtractFileExt(Sr.Name) = '.fld' then SearchFiles(Path + Sr.Name + '\'); //вызывает сама себя (рекурсивно) end;
|
|
Именно про это я и говорил...
| Цитата | | нужно сделать функцию из этого кода, и при обнаружении папки, не пропускать её, а делать рекурсивный вызов этой функции... | |