Функция FileSearch осуществляет поиск файла в одной или более папках. Необходимо указывать не только название папки, но и полный адрес этой папки.
Имя файла может быть как файловым именем, так и полным адресом файла.
Если файл будет найден, то возвращается полный адрес файла включая имя файла, в случае не нахождения искомого файла будет возвращена пустая строка.
ПРЕДУПРЕЖДЕНИЕ: ВСЕГДА сначала поиск будет проходить в текущей папке (смотри GetCurrentDir), независимо от перечисленных директорий. Если файл обнаруживается там, то путь файла возращён не будет, а Только имя файла.
Примечания
Если любой из указанных каталогов не существует, никакая ошибка не будет выброшена.
Директивный список может быть пустой строкой - тогда будет обыскан только текущий каталог.
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;