Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Поиск поддиректории файла


Автор: alekstav 6.1.2011, 19:26
Здравствуйте.
У меня есть имя файла с маской (находящиеся в ListBox1), имеется директория, в которой лежит этот файл, а вот в какой поддиректории он лежит, я не знаю. Как мне исправить мой код (что написать вместо «?????») или может, вообще, как то по другому нужно вызвать этот файл? Подскажите, пожалуйста.
Код

begin
  if ListBox1.ItemIndex > -1 then begin
    Form2.Memo1.Clear;
      Form2.Memo1.Lines.LoadFromFile ('C:\!Dictionary\'+ ??????? +ListBox1.Items[ListBox1.ItemIndex]);
   
        end;
     Form2.Show;
 end;

Автор: Данкинг 6.1.2011, 19:50
Имя файла уникальное? Можно тогда его найти с помощью этой вот процедуры поиска из ДРКБ:
Код

procedure FindFiles(StartFolder, Mask: string; List: TStrings;
  ScanSubFolders: Boolean = True);
var
  SearchRec: TSearchRec;
  FindResult: Integer;
begin
  List.BeginUpdate;
  try
    StartFolder := IncludeTrailingBackslash(StartFolder);
    FindResult := FindFirst(StartFolder + '*.*', faAnyFile, SearchRec);
    try
      while FindResult = 0 do
        with SearchRec do
        begin
          if (Attr and faDirectory) <> 0 then
          begin
            if ScanSubFolders and (Name <> '.') and (Name <> '..') then
              FindFiles(StartFolder + Name, Mask, List, ScanSubFolders);
          end
          else
          begin
            if MatchesMask(Name, Mask) then
              List.Add(StartFolder + Name);
            application.ProcessMessages;
              end;
          FindResult := FindNext(SearchRec);
        end;
    finally
      FindClose(SearchRec);
    end;
  finally
    List.EndUpdate;
  end;
end;


Информация выводится в memo1:
Код

FindFiles ('C:\!Dictionary\','file.txt',memo1.Lines, true);


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)