Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.08.2011, 21:40   #1
Ёжик в тумане
Подтвердите свой е-майл
 
Регистрация: 20.07.2011
Сообщений: 239
Вопрос Проблема с поиском файла

Доброго времени суток! Мне нужна помощь... это касается поиска файла.
Допустим иметься некий файл file.txt по адресу c:\123\навание_папки_которое_я_не_з наю\file.txt
Так вот как мне этот файл найти если я знаю только первоначальный путь к нему?!
___________
З.Ы. Думал, что если укажу путь для поиска файла C:\123\*.*\file.txt то программа найдёт. Нужен пример кода.
Ёжик в тумане вне форума Ответить с цитированием
Старый 04.08.2011, 22:44   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

FindFirst + FindNext
примеры рекурсивного обхода есть на форуме..

впрочем, мне не сложно и продублировать:

Код:
// для работы функции MatchesMask()
//   добавьте в uses модуль Masks 

procedure DirSearch(Dir: string; Mask : string; SL: TStrings);
var
  SearchRec: TSearchRec;
begin
  Dir := IncludeTrailingBackslash(Dir);

  if FindFirst(Dir + '*.*', faAnyFile, SearchRec) = 0 then
    repeat
      Application.ProcessMessages;

      if (SearchRec.Attr and faDirectory) <> 0 then begin
        if (SearchRec.name <> '.') and (SearchRec.name <> '..') then
                DirSearch(Dir + SearchRec.name, Mask, sl)
      end
      else
        if MatchesMask(ExtractFileName(SearchRec.Name), Mask) then
          Sl.Add(Dir + SearchRec.Name);
    until FindNext(SearchRec) <> 0;
  FindClose(SearchRec);
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
  DirSearch('C:\123\', 'file.txt', Memo1.Lines);
end;
p.s. учтите, что вложенных каталогов может быть много и, соответственно, много может быть файлов с именем file.txt
в данном примере найдутся ВСЕ!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 04.08.2011, 23:01   #3
Ёжик в тумане
Подтвердите свой е-майл
 
Регистрация: 20.07.2011
Сообщений: 239
По умолчанию

Спасибо тему можно закрыть
Ёжик в тумане вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с поиском в ворде Aleksey1989 Общие вопросы Delphi 2 09.08.2013 14:24
Проблема с поиском файлов kta87 Общие вопросы Delphi 2 26.03.2010 15:04
Проблема с поиском в БД Evgenii БД в Delphi 15 25.06.2009 00:14
Проблема с поиском решения mavs Microsoft Office Excel 4 20.04.2009 15:52
Проблема с поиском Zeraim Microsoft Office Access 2 04.06.2008 05:42