<?xml version="1.0"?>
<fpdoc-descriptions>
  <package name="lcl">
    <!--
  ====================================================================
    FileUtil
  ====================================================================
-->
    <module name="FileUtil">
      <short>Miscellaneous procedures and functions for manipulating files and filenames</short>
      <descr/>
      <!-- unresolved type reference Visibility: default -->
      <element name="Classes">
        <short/>
        <descr/>
        <seealso/>
      </element>
      <!-- unresolved type reference Visibility: default -->
      <element name="SysUtils">
        <short/>
        <descr/>
        <seealso/>
      </element>
      <!-- unresolved type reference Visibility: default -->
      <element name="LCLStrConsts">
        <short/>
        <descr/>
        <seealso/>
      </element>
      <!-- unresolved type reference Visibility: default -->
      <element name="Masks">
        <short/>
        <descr/>
        <seealso/>
      </element>
      <!-- constant Visibility: default -->
      <element name="UTF8FileHeader">
        <short/>
        <descr/>
        <seealso/>
      </element>
      <!-- function Visibility: default -->
      <element name="CompareFilenames">
        <short>
          <var>CompareFileNames</var> - compares two file names to see whether they are equal</short>
      </element>
      <!-- function result Visibility: default -->
      <element name="CompareFilenames.Result">
        <short>Returns zero if files are equal, or the index of differences, or the difference in length if filenames are not equal</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="CompareFilenames.Filename1">
        <short>First filename</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="CompareFilenames.Filename2">
        <short>Second filename</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="CompareFilenames.ResolveLinks">
        <short>
          <var>ResolveLinks</var> - if True, searches through links to find the actual file for comparison</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="CompareFilenames.Len1">
        <short>Length of first filename</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="CompareFilenames.Len2">
        <short>Length of second filename</short>
      </element>
      <!-- function Visibility: default -->
      <element name="FilenameIsAbsolute">
        <short>Checks whether an absolute file name is given in <var>TheFileName</var>
        </short>
        <descr>
          <p>Checks whether an absolute file name is given in <var>TheFileName</var>
          </p>
          <p>Makes use of <var>FilenameIsWinAbsolute</var> on Windows systems, otherwise uses <var>FilenameIsUnixAbsolute</var>
          </p>
        </descr>
      </element>
      <!-- function result Visibility: default -->
      <element name="FilenameIsAbsolute.Result">
        <short>Returns True if an absolute filename has been supplied</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="FilenameIsAbsolute.TheFilename">
        <short>The name of the file to be checked</short>
      </element>
      <!-- function Visibility: default -->
      <element name="FilenameIsWinAbsolute">
        <short>
          <var>FilenameIsWinAbsolute</var> - checks that the supplied name is an absolute file name for the Windows system</short>
        <descr>
          <p>
            <var>FilenameIsWinAbsolute</var> - checks that the supplied name is an absolute file name for the Windows system</p>
          <p>Looks, for instance, for Drive Letters and colon at the beginning of the string</p>
        </descr>
      </element>
      <!-- function result Visibility: default -->
      <element name="FilenameIsWinAbsolute.Result">
        <short>Returns True if this is a true absolite Windows filename</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="FilenameIsWinAbsolute.TheFilename">
        <short>The name of the file for checking</short>
      </element>
      <!-- function Visibility: default -->
      <element name="FilenameIsUnixAbsolute">
        <short>
          <var>FilenameIsUnixAbsolute</var> - checks that the supplied name is an absolute filename in Unix systems</short>
        <descr>
          <p>
            <var>FilenameIsUnixAbsolute</var> - checks that the supplied name is an absolute filename in Unix systems</p>
          <p>Checks that the name is non-empty and starts with a slash</p>
        </descr>
      </element>
      <!-- function result Visibility: default -->
      <element name="FilenameIsUnixAbsolute.Result">
        <short>Returns True if the supplied name is a correct Absolute file name for a Unix system</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="FilenameIsUnixAbsolute.TheFilename">
        <short>The name of the file for checking</short>
      </element>
      <!-- procedure Visibility: default -->
      <element name="CheckIfFileIsExecutable">
        <short>
          <var>CheckIfFileIsExecutable</var> - creates Exception if file is not Executable</short>
        <descr>
          <p>
            <var>CheckIfFileIsExecutable</var> - creates Exception if file is not Executable</p>
          <p>Otherwise, there is no action</p>
        </descr>
        <errors>An exception is raised if the file is not executable</errors>
      </element>
      <!-- argument Visibility: default -->
      <element name="CheckIfFileIsExecutable.AFilename">
        <short>
          <var>AFileName</var> - name of the file for checking</short>
      </element>
      <!-- procedure Visibility: default -->
      <element name="CheckIfFileIsSymlink">
        <short>
          <var>CheckIfFileIsSymlink</var> - raises an exception if file is not a Symbolic Link</short>
        <descr>
          <p>
            <var>CheckIfFileIsSymlink</var> - raises an exception if file is not a Symbolic Link</p>
          <p>Otherwise no action</p>
        </descr>
        <errors>An exception is raised with appropriate message if file does not exist or is not a correct symbolic link (eg dangling link, circular link, read access denied, or not a symbolic link)</errors>
      </element>
      <!-- argument Visibility: default -->
      <element name="CheckIfFileIsSymlink.AFilename">
        <short>
          <var>AFileName</var> - name of file for checking</short>
      </element>
      <!-- function Visibility: default -->
      <element name="FileIsReadable">
        <short>
          <var>FileIsReadable</var> - checks whether supplied file name refers to a readable file</short>
        <descr>
          <p>
            <var>FileIsReadable</var> - checks whether supplied file name refers to a readable file</p>
          <p>Always true on Windows systems.</p>
          <p>On Unix systems, checks permissions of file</p>
        </descr>
      </element>
      <!-- function result Visibility: default -->
      <element name="FileIsReadable.Result">
        <short>Always true in Windows; in Unix systems, returns true if read permission exists for the file</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="FileIsReadable.AFilename">
        <short>Name of the file for checking</short>
      </element>
      <!-- function Visibility: default -->
      <element name="FileIsWritable">
        <short>
          <var>FileIsWritable</var> - checks if the supplied file name refers to a file that is writable</short>
        <descr>
          <p>
            <var>FileIsWritable</var> - checks if the supplied file name refers to a file that is writable</p>
          <p>Checks file permissions in both Unix and Windows systems</p>
        </descr>
      </element>
      <!-- function result Visibility: default -->
      <element name="FileIsWritable.Result">
        <short>Returns True if Write permission exists</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="FileIsWritable.AFilename">
        <short>The name of the file for checking</short>
      </element>
      <!-- function Visibility: default -->
      <element name="FileIsText">
        <short>
          <var>FileIsText</var> - checks whether the supplied file name refers to a readable text file</short>
        <descr>
          <p>
            <var>FileIsText</var> - checks whether the supplied file name refers to a readable text file</p>
          <p>Searches the opening section of the file (first 1024 characters) for non-text characters such as ASCII 0 to 31 (except CR and LF, the new line characters)</p>
        </descr>
        <errors>If there is a file reading error, an Exception is raised and <var>FileReadable</var> returns False</errors>
      </element>
      <!-- function result Visibility: default -->
      <element name="FileIsText.Result">
        <short>Returns True if the file is a text file</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="FileIsText.AFilename">
        <short>The name of the file for checking</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="FileIsText.FileReadable">
        <short>Returns false if a file reading Exception is encountered</short>
      </element>
      <!-- function Visibility: default -->
      <element name="FileIsExecutable">
        <short>
          <var>FileIsExecutable</var> - checks if 
          
          
          <var>AFileName</var> refers to an executable file</short>
        <descr>
          <p>
            <var>FileIsExecutable</var> - checks if 
            
            
            <var>AFileName</var> refers to an executable file</p>
          <p>On Windows systems, if the file exists it is regarded as executable.</p>
          <p>On other systems (eg Unix etc), looks at file permissions to see whether execute flag is set</p>
        </descr>
      </element>
      <!-- function result Visibility: default -->
      <element name="FileIsExecutable.Result">
        <short>Returns True if file is executable (always true in Windows if file exists)</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="FileIsExecutable.AFilename">
        <short>Name of the file for checking</short>
      </element>
      <!-- function Visibility: default -->
      <element name="FileIsSymlink">
        <short>
          <var>FileIsSymLink</var> - check if file name is a symbolic link</short>
        <descr>
          <p>
            <var>FileIsSymLink</var> - check if file name is a symbolic link</p>
          <p>On Windows systems, always returns false. On others, returns true if it is a symbolic link</p>
        </descr>
      </element>
      <!-- function result Visibility: default -->
      <element name="FileIsSymlink.Result">
        <short>Returns True if file name is a symbolic link (always false in Windows systems)</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="FileIsSymlink.AFilename">
        <short>Name of the file for checking</short>
      </element>
      <!-- function Visibility: default -->
      <element name="FileSize">
        <short>
          <var>FileSize</var> - finds the size of the named file</short>
      </element>
      <!-- function result Visibility: default -->
      <element name="FileSize.Result">
        <short>Returns the size of the file, or -1 if not there</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="FileSize.Filename">
        <short>The name of the file for checking</short>
      </element>
      <!-- function Visibility: default -->
      <element name="GetFileDescription">
        <short>
          <var>GetFileDescription</var> - finds the Unix-type file description for the given file</short>
        <descr>
          <p>
            <var>GetFileDescription</var> - finds the Unix-type file description for the given file</p>
          <p>No action in Windows systems (returns empty string)</p>
        </descr>
      </element>
      <!-- function result Visibility: default -->
      <element name="GetFileDescription.Result">
        <short>Returns empty string (Windows) or Unix-type file description string in other systems</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="GetFileDescription.AFilename">
        <short>The name of the file whose description is sought</short>
      </element>
      <!-- function Visibility: default -->
      <element name="ReadAllLinks">
        <short>
          <var>ReadAllLinks</var> - tries to find the file that is referred to by the symbolic link in  
          
          <var>FileName</var>
        </short>
        <descr>
          <p>
            <var>ReadAllLinks</var> - tries to find the file that is referred to by the symbolic link in 
  
            
            <var>FileName</var>
          </p>
          <p><var>No function in Windows systems</var></p>
          <p><var>On Unix-like systems, finds the linked file and returns its full path and filename, or (if <var>ExceptionOnError</var> has been set True) an Exception is raised with appropriate error message</var></p>
        </descr>
        <errors>If an error is encountered on trying to read the link, provided <var>ExceptionOnError</var> has been set True an Exception is raised with appropriate error message. Otherwise an error results in the return of an empty string.</errors>
      </element>
      <!-- function result Visibility: default -->
      <element name="ReadAllLinks.Result">
        <short>Returns the full path and filename of the target file; empty if the file is not found, or the original <var>FileName</var> on Windows systems</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="ReadAllLinks.Filename">
        <short>The string containing the symbolic link</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="ReadAllLinks.ExceptionOnError">
        <short>If True, an Exception is raised on encountering a file error</short>
      </element>
      <!-- function Visibility: default -->
      <element name="DirPathExists">
        <short>Checks if the given directory path exists</short>
      </element>
      <!-- function result Visibility: default -->
      <element name="DirPathExists.Result">
        <short>Returns True if the given directory path exists</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="DirPathExists.FileName">
        <short>Name of the directory path to be checked</short>
      </element>
      <!-- function Visibility: default -->
      <element name="ForceDirectory">
        <short>
          <var>ForceDirectory </var>- creates a directory if none exists</short>
      </element>
      <!-- function result Visibility: default -->
      <element name="ForceDirectory.Result">
        <short>Returns True if successfully created directory</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="ForceDirectory.DirectoryName">
        <short>The name of the directory required</short>
      </element>
      <!-- function Visibility: default -->
      <element name="DeleteDirectory">
        <short>
          <var>DeleteDirectory</var> - Delete the named directory (or only its contents if  
          
          
          <var>OnlyChilds</var> is True)</short>
        <errors>If there was an error, such as trying to removing . or .., or there were insufficient permissions, or the file did not exist, False is returned</errors>
      </element>
      <!-- function result Visibility: default -->
      <element name="DeleteDirectory.Result">
        <short>Returns True if the directory or its contents were correctly removed</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="DeleteDirectory.DirectoryName">
        <short>The name of the directory for processing</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="DeleteDirectory.OnlyChilds">
        <short>If True, only the contents ('children') of the directory are removed</short>
      </element>
      <!-- function Visibility: default -->
      <element name="ProgramDirectory">
        <short>
          <var>ProgramDirectory</var> - returns the directory in which the currently running program resides</short>
      </element>
      <!-- function result Visibility: default -->
      <element name="ProgramDirectory.Result">
        <short>Returns the name of the directory in which the current program is found</short>
      </element>
      <!-- function Visibility: default -->
      <element name="DirectoryIsWritable">
        <short>
          <var>DirectoryIsWritable</var> - checks if it is possible to write a file to the named directory</short>
        <descr>
          <p>
            <var>DirectoryIsWritable</var> - checks if it is possible to write a file to the named directory</p>
          <p>Tries to create a text file within the named directory, and write to it. Returns True if it works, and False if it doesn't. Also raises an Exception on failure</p>
        </descr>
        <errors>An Exception is raised on failure to create or write to the temporary file</errors>
      </element>
      <!-- function result Visibility: default -->
      <element name="DirectoryIsWritable.Result">
        <short>Returns True if successful in writing a temporary file to the named directory</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="DirectoryIsWritable.DirectoryName">
        <short>Name of the Directory for checking</short>
      </element>
      <!-- constant Visibility: default -->
      <element name="PascalFileExt">
        <short>
          <var>PascalFileExt</var> - typically '.pas', '.pp' or '.p'</short>
      </element>
      <!-- function Visibility: default -->
      <element name="ExtractFileNameOnly">
        <short>
          <var>ExtractFileNameOnly</var> - removes all path delimiters and file extensions, leaving just the file name</short>
      </element>
      <!-- function result Visibility: default -->
      <element name="ExtractFileNameOnly.Result">
        <short>Returns the original file name with path delimiters and the extension removed</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="ExtractFileNameOnly.AFilename">
        <short>The name of the file for processing</short>
      </element>
      <!-- function Visibility: default -->
      <element name="ExtractFileNameWithoutExt">
        <short>
          <var>ExtractFileNameWithoutExt</var> - returns just the name of the file without an extension</short>
      </element>
      <!-- function result Visibility: default -->
      <element name="ExtractFileNameWithoutExt.Result">
        <short>Returns the original file name if it had no extension, otherwise returns the file name with its extension removed</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="ExtractFileNameWithoutExt.AFilename">
        <short>The name of the file for checking</short>
      </element>
      <!-- function Visibility: default -->
      <element name="CompareFileExt">
        <short>
          <var>CompareFileExt</var> - see whether the nominated file has an extension that is the same as the supplied extension</short>
      </element>
      <!-- function result Visibility: default -->
      <element name="CompareFileExt.Result">
        <short>Returns zero if extension is present in file name, otherwise returns non-zero value</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="CompareFileExt.Filename">
        <short>The <var>FileName</var> whose extension is to be checked</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="CompareFileExt.Ext">
        <short>
          <var>Ext</var> - string defining the Extension to be checked</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="CompareFileExt.CaseSensitive">
        <short>
          <var>CaseSensitive</var> - if True, case of 
          
          
          
          
          
          <var>Ext</var> must match case in 
          
          
          
          
          
          <var>FileName</var>
        </short>
      </element>
      <!-- function Visibility: default -->
      <element name="FilenameIsPascalUnit">
        <short>
          <var>FilenameIsPascalUnit</var> - checks that the supplied name is a correct Pascal unit name</short>
        <descr>
          <p>
            <var>FilenameIsPascalUnit</var> - checks that the supplied name is a correct Pascal unit name</p>
          <p>Looks at the file extension to see if it matches one of the standard Pascal extensions (currently .p, .pp, .pas)</p>
        </descr>
      </element>
      <!-- function result Visibility: default -->
      <element name="FilenameIsPascalUnit.Result">
        <short>Returns True if the supplied name is a correct Pascal Unit filename</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="FilenameIsPascalUnit.Filename">
        <short>The name of the file for checking</short>
      </element>
      <!-- function Visibility: default -->
      <element name="AppendPathDelim">
        <short>Appends the path delimeter to the path.</short>
        <descr>AppendPathDelim checks if the last character in the path is the path delimeter. If it isn't the path delimeter, it is added, otherwise the unmodified path is returned.
</descr>
        <errors/>
        <seealso/>
      </element>
      <!-- function result Visibility: default -->
      <element name="AppendPathDelim.Result">
        <short>Returns a new path name including delimiter, if it was not already there, otherwise returns original pathname</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="AppendPathDelim.Path">
        <short>Path - name for checking</short>
      </element>
      <!-- function Visibility: default -->
      <element name="ChompPathDelim">
        <short>Removes trailing path delimeter</short>
        <descr>ChompPathDelim checks if the last character in the path is the path delimeter. If it is the path delimeter, it is removed, otherwise the unmodified path is returned.</descr>
        <errors/>
        <seealso/>
      </element>
      <!-- function result Visibility: default -->
      <element name="ChompPathDelim.Result">
        <short>Returns new path name with delimiter removed if it was there, otherwise returns original path name</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="ChompPathDelim.Path">
        <short>Path name for checking</short>
      </element>
      <!-- function Visibility: default -->
      <element name="TrimFilename">
        <short>
          <var>TrimFilename</var> - trim double path delimiters, heading and trailing spaces and special dirs . and ..</short>
      </element>
      <!-- function result Visibility: default -->
      <element name="TrimFilename.Result">
        <short>Returns the original file name if no trimming was needed, otherwise returns the trimmed file name</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="TrimFilename.AFilename">
        <short>The name of the file for trimming</short>
      </element>
      <!-- function Visibility: default -->
      <element name="CleanAndExpandFilename">
        <short>
          <var>CleanAndExpandFilename</var> - trims irrelevant characters such as path delimiters from the name  of the file</short>
      </element>
      <!-- function result Visibility: default -->
      <element name="CleanAndExpandFilename.Result">
        <short>Returns the original file name without redundant leading or trailing spaces, path delimiters etc</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="CleanAndExpandFilename.Filename">
        <short>The name of the file for processing</short>
      </element>
      <!-- function Visibility: default -->
      <element name="CleanAndExpandDirectory">
        <short>
          <var>CleanAndExpandDirectory</var> - trims and cleans 
          
          
          <var>FileName</var> and appends a directory delimiter to it</short>
      </element>
      <!-- function result Visibility: default -->
      <element name="CleanAndExpandDirectory.Result">
        <short>Returns the cleaned file name with appended directory delimiter</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="CleanAndExpandDirectory.Filename">
        <short>The name of the file for operation</short>
      </element>
      <!-- function Visibility: default -->
      <element name="CreateAbsoluteSearchPath">
        <short>
          <var>CreateAbsoluteSearchPath</var> - concatenates  
          
          
          
          
          <var>BaseDirectory </var>and  
          
          
          
          
          <var>SearchPath</var> to form an absolute path to search for files</short>
        <descr>
          <p>
            <var>CreateAbsoluteSearchPath</var> - concatenates 
  
            
            
            
            
            <var>BaseDirectory </var>and 
  
            
            
            
            
            <var>SearchPath</var> to form an absolute path to search for files</p>
          <p>Adds appropriate path delimiters to the BaseDirectory string, then adds the search path, checking that each directory in the path is in fact an absolutely specified directory, then returns the fully formed absolute search path.</p>
        </descr>
        <errors>If 
<var>BaseDirectory</var> is empty, functions exits and returns with 
<var>Result</var> equal to 
<var>SearchPath</var>; if 
<var>SearchPath</var> is empty, function exits with empty 
<var>Result</var>
        </errors>
      </element>
      <!-- function result Visibility: default -->
      <element name="CreateAbsoluteSearchPath.Result">
        <short>The absolute path formed by concatenating <var>BaseDirectory</var> and <var>SearchPath</var>
        </short>
      </element>
      <!-- argument Visibility: default -->
      <element name="CreateAbsoluteSearchPath.SearchPath">
        <short>The search path (a relative path)</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="CreateAbsoluteSearchPath.BaseDirectory">
        <short>The base directory from which to form the absolute path</short>
      </element>
      <!-- function Visibility: default -->
      <element name="CreateRelativePath">
        <short>
          <var>CreateRelativePath</var> - given an absolute path and a 
          
          
          
          
          <var>BaseDirectory,</var> create a search path relative to the current directory</short>
        <descr>
          <p>
            <var>CreateRelativePath</var> - given an absolute path and a 
            
            
            
            
            <var>BaseDirectory,</var> create a search path relative to the current directory</p>
          <p>The returned string includes the correct number of dots and double dots to signify relativity to the current directory (eg ../../or ..\..\ etc)</p>
        </descr>
        <errors>If <var>BaseDirectory</var> is empty, functions exits and returns with <var>Result</var> equal to <var>Filename</var>; if <var>Filename</var> is empty, function exits with empty <var>Result</var>
        </errors>
      </element>
      <!-- function result Visibility: default -->
      <element name="CreateRelativePath.Result">
        <short>The file name expressed as path relative to the current directory</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="CreateRelativePath.Filename">
        <short>The absolute <var>FileName</var> for which a relative path is to be created</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="CreateRelativePath.BaseDirectory">
        <short>
          <var>BaseDirectory </var>of the absolute search path</short>
      </element>
      <!-- function Visibility: default -->
      <element name="FileIsInPath">
        <short>
          <var>FileIsInPath</var> - checks that 
          
          
          <var>FileName</var> refers to a file that exists within the given 
          
          
          <var>Path</var>
        </short>
      </element>
      <!-- function result Visibility: default -->
      <element name="FileIsInPath.Result">
        <short>Returns True if a file named <var>Filename</var> exists within the given <var>Path</var>
        </short>
      </element>
      <!-- argument Visibility: default -->
      <element name="FileIsInPath.Filename">
        <short>The name of the file for checking</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="FileIsInPath.Path">
        <short>The <var>Path</var> to be searched</short>
      </element>
      <!-- function Visibility: default -->
      <element name="FileIsInDirectory">
        <short>
          <var>FileIsInDirectory</var> - checks whether a file with 
          
          
          <var>FileName</var> exists within the given 
          
          
          <var>Directory</var>
        </short>
        <descr>
          <p>
            <var>FileIsInDirectory</var> - checks whether a file with 
            
            
            <var>FileName</var> exists within the given 
            
            
            <var>Directory</var>
          </p>
        </descr>
      </element>
      <!-- function result Visibility: default -->
      <element name="FileIsInDirectory.Result">
        <short>Returns True if the file is in the directory</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="FileIsInDirectory.Filename">
        <short>The name of the file to be checked</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="FileIsInDirectory.Directory">
        <short>The name of the directory to be searched for the file</short>
      </element>
      <!-- enumeration type Visibility: default -->
      <element name="TSearchFileInPathFlag">
        <short/>
        <descr/>
        <seealso/>
      </element>
      <!-- enumeration value Visibility: default -->
      <element name="TSearchFileInPathFlag.sffDontSearchInBasePath">
        <short/>
      </element>
      <!-- enumeration value Visibility: default -->
      <element name="TSearchFileInPathFlag.sffSearchLoUpCase">
        <short/>
      </element>
      <!-- set type Visibility: default -->
      <element name="TSearchFileInPathFlags">
        <short/>
        <descr/>
        <seealso/>
      </element>
      <!-- constant Visibility: default -->
      <element name="AllDirectoryEntriesMask">
        <short>
          <var>AllDirectoryEntriesMask</var> - typically '*' on most systems</short>
      </element>
      <!-- function Visibility: default -->
      <element name="GetAllFilesMask">
        <short>File mask representing all files suitable for showing in a file filter.</short>
        <descr>GetAllFilesMask returns a File Mask suitable for showing in a filter of a Open File Dialog.


 windows '*.*' is returned, on other operating systems just '*'.</descr>
        <errors/>
        <seealso/>
      </element>
      <!-- function result Visibility: default -->
      <element name="GetAllFilesMask.Result">
        <short/>
      </element>
      <!-- function Visibility: default -->
      <element name="GetExeExt">
        <short>
          <var>GetExeExt</var> - find the correct extension for an executable file</short>
      </element>
      <!-- function result Visibility: default -->
      <element name="GetExeExt.Result">
        <short>Returns '.exe' in Windows, nothing in other systems</short>
      </element>
      <!-- function Visibility: default -->
      <element name="SearchFileInPath">
        <short>
          <var>SearchFileInPath</var> - searches for  
          <var>Filename</var> in the given  
          <var>SearchPath</var> using the supplied  
          <var>BasePath</var> with the specified  
          <var>Delimiter</var> and the options listed in  
          <var>Flags</var>
        </short>
        <descr>
          <p>
            <printshort id="SearchFileInPath"/>
          </p>
          <p>Searches the whole path unless the <var>sffDontSearchInBasePath</var> flag is present</p>
          <p>Returns the first file that matches the supplied criteria</p>
        </descr>
        <errors>If the file does not exist, an empty string is returned</errors>
      </element>
      <!-- function result Visibility: default -->
      <element name="SearchFileInPath.Result">
        <short>Returns fully specified file name of the first file that matches the supplied criteria, or empty string if file not found</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="SearchFileInPath.Filename">
        <short>The name of the file for searching</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="SearchFileInPath.BasePath">
        <short>The <var>BasePath </var>to be used for the search</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="SearchFileInPath.SearchPath">
        <short>The path for searching</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="SearchFileInPath.Delimiter">
        <short>The directory <var>Delimiter</var> to be used in the search</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="SearchFileInPath.Flags">
        <short>
          <var>Flags </var>specifying how to search: e.g. don't search in base path, case independent search</short>
      </element>
      <!-- function Visibility: default -->
      <element name="SearchAllFilesInPath">
        <short>
          <var>SearchAllFilesInPath</var> - searches for  all files named  
          <var>Filename</var> in the given    
          <var>SearchPath</var> using the supplied    
          <var>BasePath</var> with the specified    
          <var>Delimiter</var> and the options listed in    
          <var>Flags</var>
        </short>
        <descr>
          <p>
            <printshort id="SearchAllFilesInPath"/>
          </p>
          <p>Searches the whole path unless the <var>sffDontSearchInBasePath</var> flag is present</p>
          <p>Returns all files that match the supplied criteria</p>
        </descr>
      </element>
      <!-- function result Visibility: default -->
      <element name="SearchAllFilesInPath.Result">
        <short>Returns fully specified file names of all files that match the supplied criteria, or empty string if file not found</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="SearchAllFilesInPath.Filename">
        <short>The name of the file for searching</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="SearchAllFilesInPath.BasePath">
        <short>The  <var>BasePath </var>to be used for the search</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="SearchAllFilesInPath.SearchPath">
        <short>The path for searching</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="SearchAllFilesInPath.Delimiter">
        <short>The directory  <var>Delimiter</var> to be used in the search</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="SearchAllFilesInPath.Flags">
        <short>
          <var>Flags </var>specifying how to search: e.g. don't search in base path, case independent search</short>
      </element>
      <!-- function Visibility: default -->
      <element name="FindDiskFilename">
        <short>
          <var>FindDiskFilename</var> - finds the file that best fits the supplied filename</short>
        <descr>
          <p>
            <var>FindDiskFilename</var> - finds the file that best fits the supplied filename</p>
          <p>Searches for the filename case on disk. The file must exist.</p>
          <p>For example: If Filename='file' and there is only a 'File' then 'File' will be returned.</p>
        </descr>
      </element>
      <!-- function result Visibility: default -->
      <element name="FindDiskFilename.Result">
        <short>Returns the best fitting filename from the disk (taking case into consideration)</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="FindDiskFilename.Filename">
        <short>The name of the file for checking</short>
      </element>
      <!-- function Visibility: default -->
      <element name="FindDiskFileCaseInsensitive">
        <short>
          <var>FindDiskFileCaseInsensitive</var> - searches for the given 
          
          
          <var>FileName</var> in a case insensitive manner</short>
      </element>
      <!-- function result Visibility: default -->
      <element name="FindDiskFileCaseInsensitive.Result">
        <short>If it exists, returns the file name with path information otherwise returns an empty string</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="FindDiskFileCaseInsensitive.Filename">
        <short>The name of the file for processing</short>
      </element>
      <!-- function Visibility: default -->
      <element name="FindDefaultExecutablePath">
        <short>
          <var>FindDefaultExecutablePath</var> - finds the default path to the named Executable file</short>
        <descr>
          <p>
            <var>FindDefaultExecutablePath</var> - finds the default path to the named Executable file</p>
          <p>On Windows systems, looks for the '.EXE' extension</p>
          <p>In all systems, searches the 'PATH' environment variable to see if the file is in one of the default paths</p>
        </descr>
      </element>
      <!-- function result Visibility: default -->
      <element name="FindDefaultExecutablePath.Result">
        <short>Returns the filename of the Executable file with path information attached</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="FindDefaultExecutablePath.Executable">
        <short>The name of the <var>Executable</var> file</short>
      </element>
      <!-- object Visibility: default -->
      <element name="TFileIterator">
        <short>Class for getting info about found file or directory.</short>
        <descr/>
        <errors/>
        <seealso/>
      </element>
      <!-- variable Visibility: private -->
      <element name="TFileIterator.FPath">
        <short/>
        <descr/>
        <seealso/>
      </element>
      <!-- variable Visibility: private -->
      <element name="TFileIterator.FLevel">
        <short/>
        <descr/>
        <seealso/>
      </element>
      <!-- variable Visibility: private -->
      <element name="TFileIterator.FFileInfo">
        <short/>
        <descr/>
        <seealso/>
      </element>
      <!-- variable Visibility: private -->
      <element name="TFileIterator.FSearching">
        <short/>
        <descr/>
        <seealso/>
      </element>
      <!-- function Visibility: private -->
      <element name="TFileIterator.GetFileName">
        <short/>
        <descr/>
        <errors/>
        <seealso/>
      </element>
      <!-- function result Visibility: default -->
      <element name="TFileIterator.GetFileName.Result">
        <short/>
      </element>
      <!-- procedure Visibility: public -->
      <element name="TFileIterator.Stop">
        <short>Stops the searching process.</short>
        <descr/>
        <errors/>
        <seealso>
          <link id="TFileSearcher.Search"/>
        </seealso>
      </element>
      <!-- function Visibility: public -->
      <element name="TFileIterator.IsDirectory">
        <short>If the current file is directory.</short>
        <descr/>
        <errors/>
        <seealso/>
      </element>
      <!-- function result Visibility: default -->
      <element name="TFileIterator.IsDirectory.Result">
        <short/>
      </element>
      <!-- property Visibility: public -->
      <element name="TFileIterator.FileName">
        <short>Gets the current file name.</short>
        <descr/>
        <seealso/>
      </element>
      <!-- property Visibility: public -->
      <element name="TFileIterator.FileInfo">
        <short>Gets the current file info.</short>
        <descr/>
        <seealso/>
      </element>
      <!-- property Visibility: public -->
      <element name="TFileIterator.Level">
        <short>Gets the current file path level relative to base search path.</short>
        <descr/>
        <seealso/>
      </element>
      <!-- property Visibility: public -->
      <element name="TFileIterator.Path">
        <short>Gets the current file path.</short>
        <descr/>
        <seealso/>
      </element>
      <!-- property Visibility: public -->
      <element name="TFileIterator.Searching">
        <short>If the searching is in process.</short>
        <descr/>
        <seealso/>
      </element>
      <!-- procedure type Visibility: default -->
      <element name="TFileFoundEvent">
        <short/>
        <descr/>
        <seealso/>
      </element>
      <!-- argument Visibility: default -->
      <element name="TFileFoundEvent.FileIterator">
        <short/>
      </element>
      <!-- procedure type Visibility: default -->
      <element name="TDirectoryFoundEvent">
        <short/>
        <descr/>
        <seealso/>
      </element>
      <!-- argument Visibility: default -->
      <element name="TDirectoryFoundEvent.FileIterator">
        <short/>
      </element>
      <!-- object Visibility: default -->
      <element name="TFileSearcher">
        <short>Class for searching files.</short>
        <descr/>
        <errors/>
        <seealso/>
      </element>
      <!-- variable Visibility: private -->
      <element name="TFileSearcher.FOnFileFound">
        <short/>
        <descr/>
        <seealso/>
      </element>
      <!-- variable Visibility: private -->
      <element name="TFileSearcher.FOnDirectoryFound">
        <short/>
        <descr/>
        <seealso/>
      </element>
      <!-- procedure Visibility: private -->
      <element name="TFileSearcher.RaiseSearchingError">
        <short/>
        <descr/>
        <errors/>
        <seealso/>
      </element>
      <!-- procedure Visibility: protected -->
      <element name="TFileSearcher.DoDirectoryEnter">
        <short/>
        <descr/>
        <errors/>
        <seealso/>
      </element>
      <!-- procedure Visibility: protected -->
      <element name="TFileSearcher.DoDirectoryFound">
        <short/>
        <descr/>
        <errors/>
        <seealso/>
      </element>
      <!-- procedure Visibility: protected -->
      <element name="TFileSearcher.DoFileFound">
        <short/>
        <descr/>
        <errors/>
        <seealso/>
      </element>
      <!-- constructor Visibility: public -->
      <element name="TFileSearcher.Create">
        <short>Creates new file searcher object.</short>
        <descr/>
        <errors/>
        <seealso/>
      </element>
      <!-- procedure Visibility: public -->
      <element name="TFileSearcher.Search">
        <short>Searches for files in specified path with passed options.</short>
        <descr>Searches for files in specified path. When file is found the OnFileFound event is invoked, for directories
		  OnDirectoryFound event. You can abort searching process by calling Stop method in this events.
		</descr>
        <errors/>
        <seealso>
          <link id="TFileSearcher.OnFileFound"/>
          <link id="TFileSearcher.OnDirectoryFound"/>
          <link id="TFileIterator.Stop"/>
        </seealso>
      </element>
      <!-- argument Visibility: default -->
      <element name="TFileSearcher.Search.ASearchPath">
        <short>Base path for searching files.</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="TFileSearcher.Search.ASearchMask">
        <short>Mask which file should match.</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="TFileSearcher.Search.ASearchSubDirs">
        <short>If search recursively sub directories.</short>
      </element>
      <!-- property Visibility: public -->
      <element name="TFileSearcher.OnDirectoryFound">
        <short>Is invoked when directory is found.</short>
        <descr/>
        <seealso/>
      </element>
      <!-- property Visibility: public -->
      <element name="TFileSearcher.OnFileFound">
        <short>Is invoked when file is found.</short>
        <descr/>
        <seealso/>
      </element>
      <!-- function Visibility: default -->
      <element name="FindAllFiles">
        <short>Returns the list of found files in the specified path according to passed options.</short>
        <descr/>
        <errors/>
        <seealso/>
      </element>
      <!-- function result Visibility: default -->
      <element name="FindAllFiles.Result">
        <short>List of found files.</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="FindAllFiles.SearchPath">
        <short>Base path for searching files.</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="FindAllFiles.SearchMask">
        <short>Mask which file should match.</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="FindAllFiles.SearchSubDirs">
        <short>If search recursively sub directories.</short>
      </element>
      <!-- function Visibility: default -->
      <element name="ReadFileToString">
        <short>
          <var>ReadFileToString</var> - returns a string with the contents of the named file</short>
        <descr>
          <p>
            <printshort id="ReadFileToString"/>
          </p>
          <p>Opens the file and reads its contents into a Stream, then reads the stream to construct the 
          <var>Result</var> string</p>
        </descr>
        <errors>If there is an error in reading the file, an exception is raised and an empty string is returned</errors>
      </element>
      <!-- function result Visibility: default -->
      <element name="ReadFileToString.Result">
        <short>The contents of the file as a string, or an empty string if there is an error or the file is empty</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="ReadFileToString.Filename">
        <short>The name of the file for processing</short>
      </element>
      <!-- function Visibility: default -->
      <element name="CopyFile">
        <short>
          <var>CopyFile</var> - copies Source file to Destination file, optionally preserving the time stamp of the original file</short>
        <errors>An exception is raised if the Copy process does not complete successfully or correctly</errors>
      </element>
      <!-- function result Visibility: default -->
      <element name="CopyFile.Result">
        <short>Returns True if successful, False if there was an error</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="CopyFile.SrcFilename">
        <short>The source filename for the Copy</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="CopyFile.DestFilename">
        <short>The destination filename for the Copy</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="CopyFile.PreserveTime">
        <short>If True, the time stamp of the original file is preserved in the copied file</short>
      </element>
      <!-- function Visibility: default -->
      <element name="GetTempFilename">
        <short>
          <var>GetTempFilename</var> - finds a suitable name for a temporary file</short>
        <descr>
          <p>
            <var>GetTempFilename</var> - finds a suitable name for a temporary file</p>
          <p><var>Uses <var>Prefix</var> plus an integer to generate a file with extension '.tmp' in the specified <var>Directory</var>; if it already exists, increments the integer until it finds a name that is not already used</var></p>
        </descr>
      </element>
      <!-- function result Visibility: default -->
      <element name="GetTempFilename.Result">
        <short>Returns the temporary file name that has been created</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="GetTempFilename.Directory">
        <short>The <var>Directory</var> in which the temprary file is to be placed</short>
      </element>
      <!-- argument Visibility: default -->
      <element name="GetTempFilename.Prefix">
        <short>The <var>Prefix</var> to which an integer will be attached to generate a temporary filename</short>
      </element>
    </module>
    <!-- FileUtil -->
  </package>
</fpdoc-descriptions>
