NewFileSearch
The function NewFileSearch has been introduced to facilitate searching for files in the file system.
The function returns a TFloFileSearch object which can be used to obtain or process a list of files matching the parameters entered. These parameters are not case sensitive. Please also see TFloFileSearch Class for additional details.
The aPath parameterexpects a full sub-directory path name, with no trailing back-slash (\) - such as C:\Test and not C:\Test\.
The aFileSpec parameter will accept either the full file name, or a wildcard sequence - either TheDummy.txt or *.txt will be accepted.
The aAttr parameter expects a valid value. Please refer to File Attribute for more details regards the file attribute values.
Declaration: Function NewFileSearch(const aPath, aFileSpec: String; const aAttr: Integer): TFloFileSearch
A full example of the use of this function, with some of its properties and methods in use, is below.
procedure ScriptEvent (var Value : variant);var// vi: Integer; vsearch: TFloFileSearch; vfiles: TStringList;begin LogInfo(''); vfiles := TStringList.Create; //Create empty TStringList try vsearch := NewFileSearch('c:\documents', '*.txt', faAnyFile); //Find all text files in c:\documents try //Get complete list of matching files into files string list for later processing vsearch.GetFileNames(vfiles); //Search is automatically reset. We can now list file names and sizes without having to create //a new search. //Since the search is reset and reperformed, the list here will be different of matching files //have been created or deleted since we called GetFileNames(). while NOT vsearch.EOF do begin LogInfo(vsearch.FileName + ' is ' + IntToStr(vsearch.FileSize) + ' bytes in size'); vsearch.Next; end; except LogInfo('Exception: '+ExceptionToString(ExceptionType, ExceptionParam)); finally vsearch.Free; end; except LogInfo('Exception: '+ExceptionToString(ExceptionType, ExceptionParam)); //The files list still contains the list of filenames we obtained, should we wish to do any processing here, //even though the file search object has been destroyed and can no longer be used to get file information. //For the moment, these 2 lines are commented out. //for i := 0 to Pred(vfiles.Count) do //LogInfo(vfiles[i]); finally vfiles.Free; end; LogInfo(''); LogInfo('The end!!'); LogInfo('');end;