Description |
The FileSearch function searches for the given FileName in the given DirectoryList.
The FileName may be a file name or sub-path to a file.
The DirectoryList is a ; separated list of directory (path) names.
If the file cannot be found, then an empty string is returned. Otherwise, the full path plus the name of the file is returned.
WARNING: the current directory (see GetCurrentDir) is ALWAYS searched first, regardless of the given directories. If the file is found there, then the returned path is Only the file name.
You have been warned!
|
|
Notes |
If any of the specified directories do not exist, no error is thrown.
The directory list can be an empty string - only the current directory will be searched.
|
|
Related commands |
FindClose |
|
Closes a successful FindFirst file search |
FindFirst |
|
Finds all files matching a file mask and attributes |
FindNext |
|
Find the next file after a successful FindFirst |
TSearchRec |
|
Record used to hold data for FindFirst and FindNext |
|
|
|
Example code : Searching in the current directory and beyond |
var
myFile : TextFile;
fileName : string;
fullFilePath : string;
dir1, dir2 : string;
begin // The file we will be searching for
fileName := 'Test.txt';
// Write to a text file in the current directory
AssignFile(myFile, fileName);
ReWrite(myFile);
Write(myFile, 'Hello World');
CloseFile(myFile);
// Write to a text file to another directory
AssignFile(myFile, 'C:\Program Files\'+fileName);
ReWrite(myFile);
Write(myFile, 'Hello World');
CloseFile(myFile);
// Define two directories where we want to search for the file
dir1 := 'C:\No such directory';
dir2 := 'C:\Program Files';
// Search for the file
fullFilePath := FileSearch(fileName, dir1+';'+dir2);
// If we search now, we will find it in the current directory
if fullFilePath = ''
then ShowMessage(fileName+' not found')
else ShowMessage(fullFilePath+' found OK');
// Now delete Test.txt from the current directory and retry
DeleteFile(fileName);
// If we search now, we will find it in one of the search dirs
fullFilePath := FileSearch(fileName, dir1+';'+dir2);
if fullFilePath = ''
then ShowMessage(fileName+' not found')
else ShowMessage(fullFilePath+' found OK');
end;
|
Show full unit code |
Test.txt found OK
C:\Program Files\Test.txt found OK
|
|