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 найден
 



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