Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Файловая система
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 18.06.2008, 07:22
!!!~VivO~!!! !!!~VivO~!!! вне форума
Прохожий
 
Регистрация: 12.07.2007
Сообщения: 16
Репутация: 10
По умолчанию Нужна помощь в поиске файлов

Здравствуйте!!!Помогите кто знает!!!Нужно найти файлы на диске, но проблема в том что файл лежит в папке которая находится в папке которую мы указываем в пути поиска и поэтому FindFile не подходит так как он ищет только в том каталоге который указан в пути. Подскажите кто знает как можно это сделать. Извеняюсь если плохо объяснил мою проблему.
Ответить с цитированием
  #2  
Старый 18.06.2008, 10:12
san-46 san-46 вне форума
Активный
 
Регистрация: 25.04.2008
Сообщения: 383
Репутация: 33
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  Path, SpecifiedPath, FileN : String;

  function SameFile(SpecPath, FN : String; Attr : Integer) : string;
  var
    SR : TSearchRec;
    N : String;
  begin
    N := FN;
    Result := SpecPath;
    if Attr and faDirectory > 0 then begin
      Result := '';
      N := '*.*';
    end;

    if FindFirst(SpecPath+N, faAnyFile, SR) = 0 then begin
      repeat
        if (SR.Attr and faDirectory > 0) and (Attr and faDirectory > 0) and
           (SR.Name <> '.') and (SR.Name <> '..') then
        begin
          Result := SameFile(SpecPath+SR.Name+'\', FN, SR.Attr);
          if Result <> '' then
            break;
        end;
        if SR.Name = FN then begin
          Result := SpecPath+SR.Name;
          break;
        end;
      until FindNext(sr) <> 0;
    end else
      Result := '';
    FindClose(sr);
  end;

begin
  //следующие два присвоения для примера
  FileN := '1945.txt';      //искомый файл
  SpecifiedPath := 'D:\TextFiles\';  //путь к заданному каталогу

  //вызов рекурсивной функции для поиска файла в каталогах и 
  //подкаталогах, начиная от заданного каталога
  Path := SameFile(SpecifiedPath, FileN, faDirectory);
  if Path <> '' then begin //файл найден
    Memo1.Lines.Add(Path)
  end;
end;
__________________
Не забывайте делать резервные копии

Последний раз редактировалось san-46, 18.06.2008 в 10:21.
Ответить с цитированием
  #3  
Старый 19.06.2008, 12:47
!!!~VivO~!!! !!!~VivO~!!! вне форума
Прохожий
 
Регистрация: 12.07.2007
Сообщения: 16
Репутация: 10
По умолчанию

Огромнейшее спасибо за помощь!!!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 18:18.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter