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;
|