Delphi-Help

  • Increase font size
  • Default font size
  • Decrease font size

FileSearch

Печать
Рейтинг пользователей: / 0
ХудшийЛучший 

FileSearch

Описание

function FileSearch ( const FileName, DirectoryList : string ) : string;

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

Пример кода

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

Примечание

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

Авторизация



Счетчики