Функція FileSearch в Delphi – пошук файлу в одній або більше папках.
SysUtils unit
function FileSearch (const FileName, DirectoryList : string) : string;
Функція FileSearch здійснює пошук файлу в одній чи більше папках. Необхідно вказувати не лише назву папки, але й повну адресу цієї папки.
Назва файлу може бути як файловим ім'ям, так і повною адресою файлу.
Якщо файл буде знайдено, то повертається повна адреса файлу включно з ім'ям файлу, у разі не знаходження шуканого файлу буде повернуто порожній рядок.
Попередження: ЗАВЖДИ спочатку пошук буде проходити в поточній папці (дивись GetCurrentDir), незалежно від перерахованих директорій. Якщо файл виявляється там, шлях файлу повернуто не буде, а ТІЛЬКИ ім'я файлу.
Примітка.
Якщо будь-який із зазначених каталогів не існує, жодна помилка не буде викинута.
Директивний список може бути порожнім рядком – тоді буде обшукано лише поточний каталог.
Функція FileSearch: Пошук у поточному каталозі та поза ним
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 знайдено
Подібні функції, процедури та команди
FindClose — закриває успішний FindFirst пошук файлу.
FindFirst — знаходить усі файли, що відповідають масці файлу та атрибутів.
FindNext — знаходить наступний файл після успішного FindFirst.
TSearchRec — запис, що використовується для зберігання даних у FindFirst та FindNext.
