IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Поиск файла, название известно, поддиректория - нет., Маска не срабатывает.
сообщение
Сообщение #1


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

Репутация: -  62  +


Res := FindFirst('Models\*\ЛМ-68.md', faAnyFile, F);
Не находит.
Если сказать тупо:
Res := FindFirst('Models\ЛМ, ЛВС\ЛМ-68.md', faAnyFile, F);
То да, он честно находит ЛМ-68.md
Но название папки-то заранее не известно, вот в чём суть.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Цитата
Но для этого надо написать поиск папок, а этого я тоже не умею так как параметр faDir выдаст мне просто названия файлов без точки
А не надо искать с faDir, ищи с faAnyFile и потом проверяй поле SearchRec.Attr ...

Кстати, ничего писать самому уже не надо (в смысле, соответствие маске), все есть в Дельфи...
uses { ... ,} Masks;

procedure FindFiles(const Path, Mask: String; FileList: TStrings);
var
SRec: TSearchRec;
Dir: string;
begin
Dir := IncludeTrailingPathDelimiter(Path);
if FindFirst(Dir + '*.*', faAnyFile, SRec) <> 0 then Exit;
try
repeat
if (SRec.Name = '.') or (SRec.Name = '..') then Continue;
if (SRec.Attr and faDirectory) = faDirectory then // Вот проверка, папка или нет
FindFiles(Dir + SRec.Name, Mask, FileList)
else
begin
if MatchesMask(Dir + SRec.Name, Mask) then
begin
FileList.Add(Dir + SRec.Name);
end;
end;
until FindNext(SRec) <> 0;
finally
FindClose(SRec);
end;
end;

// Вызывать так:
FindFiles('F:\Programs', 'F:\Programs\*\bcd.txt', Memo1.Lines);
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 1.05.2024 3:28
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name