SysUtils下的文件类函数/过程

1、不支持通配符的函数:

function FileExists(const FileName: string; FollowLink: Boolean = True): Boolean;
function DirectoryExists(const Directory: string; FollowLink: Boolean = True): Boolean;
function DeleteFile(const FileName: string): Boolean;
function RemoveDir(const Dir: string): Boolean;
function GetCurrentDir: string;
function SetCurrentDir(const Dir: string): Boolean;
function RenameFile(const OldName, NewName: string): Boolean;
function CreateDir(const Dir: string): Boolean;//如没有上层目录则失败
function ForceDirectories(Dir: string): Boolean;//如没有上层目录则强制建立上层目录;
function RemoveDir(const Dir: string): Boolean;//删除空目录,且只能一层一层的删除
function DiskFree(Drive: Byte): Int64;
function DiskSize(Drive: Byte): Int64;
function FileSearch(const Name, DirList: string): string;//DirList是路径列表,各路径之间以“;”分割。此函数在路径列表下查找文件,查找到就返回文件的完整路径,如果文件在当前路径下存在,则只返回文件名且文件名不含路径;
//下面四个函数是针对当前目录下的判断
function LocaleFileExists(const FileName: string): Boolean;//判断文件是否存在
function GetLocaleFile(const FileName: string): string;//得到文件的全路径
function LocaleDirectoryExists(const Directory: string): Boolean;//判断当前路径下是否存在子目录
function GetLocaleDirectory(const Directory: string): String;//获得子目录的路径

2、支持通配符的几个函数/过程:

定义了下面这个结构(只保留了windows的元素):

TSearchRec = record
  private
    function GetTimeStamp: TDateTime;
  public
    Time: Integer platform deprecated;
    Size: Int64;
    Attr: Integer;
    Name: TFileName;
    ExcludeAttr: Integer;
    FindHandle: THandle platform;
    FindData: TWin32FindData platform;
    property TimeStamp: TDateTime read GetTimeStamp;
  end;
function FindFirst(const Path: string; Attr: Integer;  var F: TSearchRec): Integer;
//查找第一个符合条件的文件,支持通配符,找到则将找到的文件信息存储到F中,并返回1.
  //Attr 中的属性是一个整数值, 可能的值有:
  //faReadOnly  1   只读文件
  //faHidden    2   隐藏文件
  //faSysFile   4   系统文件
  //faVolumeID  8   卷标文件
  //faDirectory 16  目录文件
  //faArchive   32  归档文件
  //faSymLink   64  链接文件
  //faAnyFile   63  任意文件
  //Path的值也可以使用?通配符,好像只支持7个?, 如果没有条件就是*, 譬如: C:\*
  //实际使用中还应该在 repeat 中提些条件, 譬如判断如果是文件夹就递归搜索等等
function FindNext(var F: TSearchRec): Integer;
procedure FindClose(var F: TSearchRec);//这个过程用于终止findfirst和findnext,并释放分配给F的内存。每个findfirst和/或findnext的最终都应该且必须以findclose结束。

3、用于获得文件时间、属性等的函数/过程:

function FileGetDate(Handle: THandle): Integer;
function FileGetDateTimeInfo(const FileName: string;
  out DateTime: TDateTimeInfoRec; FollowLink: Boolean = True): Boolean;
function FileSetDate(const FileName: string; Age: Integer): Integer;
function FileSetDate(Handle: THandle; Age: Integer): Integer;
function FileGetAttr(const FileName: string; FollowLink: Boolean = True): Integer;
function FileSetAttr(const FileName: string; Attr: Integer; FollowLink: Boolean = True): Integer; 
function FileIsReadOnly(const FileName: string): Boolean;
function FileSetReadOnly(const FileName: string; ReadOnly: Boolean): Boolean;
function DeleteFile(const FileName: string): Boolean;
function ChangeFileExt(const FileName, Extension: string): string; //修改文件扩展名

4、分解文件信息的函数/过程

function ExtractFilePath(const FileName: string): string;
function ExtractFileDir(const FileName: string): string;
function ExtractFileDrive(const FileName: string): string;
function ExtractFileName(const FileName: string): string;
function ExtractFileExt(const FileName: string): string;
function ExpandFileName(const FileName: string): string;//获得文件的完整信息,用.或者".."来表示的目录层次也将转换为具体的字符形式的目录。

 

 

posted @ 2020-05-19 16:22  Luo大哥  阅读(227)  评论(0编辑  收藏  举报