Delphi справочник - Форум программистов - Навигация  
 A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z      По первой букве  
System     SysUtils     StrUtils     DateUtils     FileCtrl     ConvUtils     StdConvs     Math     Classes     Dialogs     Types     Variants    ПО Unit   Compiler directives     Directives     Keywords     Types     Variables     Constants     Functions     Procedures    По категории  
Подписаться на рассылку:
Клуб программистов


Основы Delphi
FileSearch
Функция
Поиск файла в одной или более папках SysUtils unit
  function FileSearch ( const FileName, DirectoryList : string ) : string;
Описание
Функция FileSearch осуществляет поиск файла в одной или более папках. Необходимо указывать не только название папки, но и полный адрес этой папки.

Имя файла может быть как файловым именем, так и полным адресом файла.

Если файл будет найден, то возвращается полный адрес файла включая имя файла, в случае не нахождения искомого файла будет возвращена пустая строка.

ПРЕДУПРЕЖДЕНИЕ: ВСЕГДА сначала поиск будет проходить в текущей папке (смотри GetCurrentDir), независимо от перечисленных директорий. Если файл обнаруживается там, то путь файла возращён не будет, а Только имя файла.
Примечания
Если любой из указанных каталогов не существует, никакая ошибка не будет выброшена.

Директивный список может быть пустой строкой - тогда будет обыскан только текущий каталог.
Похожие команды
FindClose  Закрывает успешный FindFirst поиск файла

FindFirst  Находит все файлы, соответствующие маске файла и атрибутов

FindNext  Находит следующий файл после успешного FindFirst

TSearchRec  Запись, используемая для хранения данных в FindFirst и FindNext

 
Пример кода : Поиск в текущем каталоге и вне
var
  myFile       : TextFile;
  fileName     : string;
  fullFilePath : string;
  dir1, dir2   : string;

begin
  // Файл который мы будет искать
  fileName := 'Test.txt';

  // Запись текстового файла в текущий каталог
  AssignFile(myFile, fileName);
  ReWrite(myFile);
  Write(myFile, 'Hello World');
  CloseFile(myFile);

  // Запись текстового файла в другой каталог
  AssignFile(myFile, 'C:\Program Files\'+fileName);
  ReWrite(myFile);
  Write(myFile, 'Hello World');
  CloseFile(myFile);

  // Определение двух каталогов, где мы хотим искать файл
  dir1 := 'C:\No such directory';
  dir2 := 'C:\Program Files';

  // Поиск файла
  fullFilePath := FileSearch(fileName, dir1+';'+dir2);

  // Если мы поищем сейчас, мы найдем его в текущем каталоге
  if fullFilePath = ''
  then ShowMessage(fileName+' не найден')
  else ShowMessage(fullFilePath+' найден');

  // Теперь удаляем Test.txt из текущего каталога и повторяем поиск
  DeleteFile(fileName);

  // Если мы поищем теперь, мы найдем его в одной из директорий поиска
  fullFilePath := FileSearch(fileName, dir1+';'+dir2);
  if fullFilePath = ''
  then ShowMessage(fileName+' не найден')
  else ShowMessage(fullFilePath+' найден');
end;

Test.txt найден
C:\Program Files\Test.txt найден
 



© Блог программистов   |  Создание и продвижение сайтов - "Веб сателлит"  |  Ссылки  |     |  Английская версия