• Delphi文件操作的一些函数


    //判断文件是否存在 FileExists
    //判断文件夹是否存在 DirectoryExists
    //删除文件 DeleteFile; Windows.DeleteFile
    //删除文件夹 RemoveDir; RemoveDirectory
    //获取当前文件夹 GetCurrentDir
    //设置当前文件夹 SetCurrentDir; ChDir; SetCurrentDirectory
    //获取指定驱动器的当前路径名 GetDir
    //文件改名 RenameFile
    //建立文件夹 CreateDir; CreateDirectory; ForceDirectories
    //删除空文件夹 RemoveDir; RemoveDirectory
    //建立新文件 FileCreate
    //获取当前文件的版本号 GetFileVersion
    //获取磁盘空间 DiskSize; DiskFree
    //搜索文件 FindFirst; FindNext; FindClose
    //读取与设置文件属性 FileGetAttr; FileSetAttr
    //获取文件的创建时间 FileAge; FileDateToDateTime
    
    
    
    
    Delphi代码
    //判断文件是否存在 FileExists    
    var   
    f: string;    
    begin   
    f := 'c:\temp\test.txt';    
    if not FileExists(f) then   
    begin   
       //如果文件不存在    
    end;    
    end;    
       
    --------------------------------------------------------------------------------    
       
       
    //判断文件夹是否存在 DirectoryExists    
    var   
    dir: string;    
    begin   
    dir := 'c:\temp';    
    if not DirectoryExists(dir) then   
    begin   
       //如果文件夹不存在    
    end;    
    end;    
       
    --------------------------------------------------------------------------------    
       
       
    //删除文件 DeleteFile; Windows.DeleteFile    
    var   
    f: string;    
    begin   
    f := 'c:\temp\test.txt';    
    //DeleteFile(f); //返回 Boolean    
       
    //或者用系统API:    
    Windows.DeleteFile(PChar(f)); //返回 Boolean    
    end;    
       
    --------------------------------------------------------------------------------    
       
       
    //删除文件夹 RemoveDir; RemoveDirectory    
    var   
    dir: string;    
    begin   
    dir := 'c:\temp';    
    RemoveDir(dir); //返回 Boolean    
       
    //或者用系统 API:    
    RemoveDirectory(PChar(dir)); //返回 Boolean    
    end;    
       
    --------------------------------------------------------------------------------    
       
       
    //获取当前文件夹 GetCurrentDir    
    var   
    dir: string;    
    begin   
    dir := GetCurrentDir;    
    ShowMessage(dir); //C:\Projects    
    end;    
       
    --------------------------------------------------------------------------------    
       
       
    //设置当前文件夹 SetCurrentDir; ChDir; SetCurrentDirectory    
    var   
    dir: string;    
    begin   
    dir := 'c:\temp';    
    if SetCurrentDir(dir) then   
        ShowMessage(GetCurrentDir); //c:\temp    
       
    //或者    
    ChDir(dir); //无返回值    
       
    //也可以使用API:    
    SetCurrentDirectory(PChar(Dir)); //返回 Boolean    
    end;    
       
    --------------------------------------------------------------------------------    
       
       
    //获取指定驱动器的当前路径名 GetDir    
    var   
    dir: string;    
    b: Byte;    
    begin   
    b := 0;    
    GetDir(b,dir);    
    ShowMessage(dir); //    
       
    //第一个参数: 1、2、3、4...分别对应: A、B、C、D...    
    //0 是缺省驱动器    
    end;    
       
    --------------------------------------------------------------------------------    
       
       
    //文件改名 RenameFile    
    var   
    OldName,NewName: string;    
    begin   
    OldName := 'c:\temp\Old.txt';    
    NewName := 'c:\temp\New.txt';    
       
    if RenameFile(OldName,NewName) then   
        ShowMessage('改名成功!');    
       
    //也可以:    
    SetCurrentDir('c:\temp');    
    OldName := 'Old.txt';    
    NewName := 'New.txt';    
       
    if RenameFile(OldName,NewName) then   
        ShowMessage('改名成功!');    
    end;    
       
    --------------------------------------------------------------------------------    
       
       
    //建立文件夹 CreateDir; CreateDirectory; ForceDirectories    
    var   
    dir: string;    
    begin   
    dir := 'c:\temp\delphi';    
    if not DirectoryExists(dir) then   
        CreateDir(dir); //返回 Boolean    
       
    //也可以直接用API:    
    CreateDirectory(PChar(dir),nil); //返回 Boolean    
       
    //如果缺少上层目录将自动补齐:    
    dir := 'c:\temp\CodeGear\Delphi\2007\万一';    
    ForceDirectories(dir); //返回 Boolean    
    end;    
       
    --------------------------------------------------------------------------------    
       
       
    //删除空文件夹 RemoveDir; RemoveDirectory    
    var   
    dir: string;    
    begin   
    dir := 'c:\temp\delphi';    
    RemoveDir(dir); //返回 Boolean    
       
    //也可以直接用API:    
    RemoveDirectory(PChar(dir)); //返回 Boolean    
    end;    
       
    --------------------------------------------------------------------------------    
       
       
    //建立新文件 FileCreate    
    var   
    FileName: string;    
    i: Integer;    
    begin   
    FileName := 'c:\temp\test.dat';    
    i := FileCreate(FileName);    
       
    if i>0 then   
        ShowMessage('新文件的句柄是: ' + IntToStr(i))    
    else   
        ShowMessage('创建失败!');    
    end;    
       
    --------------------------------------------------------------------------------    
       
       
    //获取当前文件的版本号 GetFileVersion    
    var   
    s: string;    
    i: Integer;    
    begin   
    s := 'C:\WINDOWS\notepad.exe';    
    i := GetFileVersion(s); //如果没有版本号返回 -1    
    ShowMessage(IntToStr(i)); //327681 这是当前记事本的版本号(还应该再转换一下)    
    end;    
       
    --------------------------------------------------------------------------------    
       
       
    //获取磁盘空间 DiskSize; DiskFree    
    var   
    r: Real;    
    s: string;    
    begin   
    r := DiskSize(3); //获取C:总空间, 单位是字节    
    r := r/1024/1024/1024;    
    Str(r:0:2,s); //格式为保留两位小数的字符串    
    s := 'C盘总空间是: ' + s + ' GB';    
    ShowMessage(s); //xx.xx GB    
       
    r := DiskFree(3); //获取C:可用空间    
    r := r/1024/1024/1024;    
    Str(r:0:2,s);    
    s := 'C盘可用空间是: ' + s + ' GB';    
    ShowMessage(s); //xx.xx GB    
    end;    
       
    //查找一个文件 FileSearch    
    var   
    FileName,Dir,s: string;    
    begin   
    FileName := 'notepad.exe';    
    Dir := 'c:\windows';    
    s := FileSearch(FileName,Dir);    
       
    if s<>'' then   
        ShowMessage(s) //c:\windows\notepad.exe    
    else   
        ShowMessage('没找到');    
    end;    
       
    --------------------------------------------------------------------------------    
       
       
    //搜索文件 FindFirst; FindNext; FindClose    
    var   
    sr: TSearchRec;    //定义 TSearchRec 结构变量    
    Attr: Integer;     //文件属性    
    s: string;         //要搜索的内容    
    List: TStringList; //存放搜索结果    
    begin   
    s := 'c:\windows\*.txt';    
    Attr := faAnyFile;             //文件属性值faAnyFile表示是所有文件    
    List := TStringList.Create;    //List建立    
       
    if FindFirst(s,Attr,sr)=0 then //开始搜索,并给 sr 赋予信息, 返回0表示找到第一个    
    begin   
        repeat                       //如果有第一个就继续找    
          List.Add(sr.Name);         //用List记下结果    
        until(FindNext(sr)<>0);      //因为sr已经有了搜索信息, FindNext只要这一个参数, 返回0表示找到    
    end;    
    FindClose(sr);                 //需要结束搜索, 搜索是内含句柄的    
       
    ShowMessage(List.Text);        //显示搜索结果    
    List.Free;                     //释放List    
       
    //更多注释:    
    //TSearchRec 结构是内涵文件大小、名称、属性与时间等信息    
    //TSearchRec 中的属性是一个整数值, 可能的值有:    
    //faReadOnly 1   只读文件    
    //faHidden    2   隐藏文件    
    //faSysFile   4   系统文件    
    //faVolumeID 8   卷标文件    
    //faDirectory 16 目录文件    
    //faArchive   32 归档文件    
    //faSymLink   64 链接文件    
    //faAnyFile   63 任意文件    
       
    //s 的值也可以使用?通配符,好像只支持7个?, 如果没有条件就是*, 譬如: C:\*    
    //实际使用中还应该在 repeat 中提些条件, 譬如判断如果是文件夹就递归搜索等等    
    end;    
       
    --------------------------------------------------------------------------------    
       
       
    //读取与设置文件属性 FileGetAttr; FileSetAttr    
    var   
    FileName: string;    
    Attr: Integer; //属性值是一个整数    
    begin   
    FileName := 'c:\temp\Test.txt';    
    Attr := FileGetAttr(FileName);    
    ShowMessage(IntToStr(Attr)); //32, 存档文件    
       
    //设置为隐藏和只读文件:    
    Attr := FILE_ATTRIBUTE_READONLY or FILE_ATTRIBUTE_HIDDEN;    
    if FileSetAttr(FileName,Attr)=0 then //返回0表示成功    
        ShowMessage('设置成功!');    
       
    //属性可选值(有些用不着):    
    //FILE_ATTRIBUTE_READONLY = 1; 只读    
    //FILE_ATTRIBUTE_HIDDEN = 2; 隐藏    
    //FILE_ATTRIBUTE_SYSTEM = 4; 系统    
    //FILE_ATTRIBUTE_DIRECTORY = 16    
    //FILE_ATTRIBUTE_ARCHIVE = 32; 存档    
    //FILE_ATTRIBUTE_DEVICE = 64    
    //FILE_ATTRIBUTE_NORMAL = 128; 一般    
    //FILE_ATTRIBUTE_TEMPORARY = 256    
    //FILE_ATTRIBUTE_SPARSE_FILE = 512    
    //FILE_ATTRIBUTE_REPARSE_POINT = 1204    
    //FILE_ATTRIBUTE_COMPRESSED = 2048; 压缩    
    //FILE_ATTRIBUTE_OFFLINE = 4096    
    //FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 8192; 不被索引    
    //FILE_ATTRIBUTE_ENCRYPTED = 16384    
    end;    
       
    --------------------------------------------------------------------------------    
       
       
    //获取文件的创建时间 FileAge; FileDateToDateTime    
    var   
    FileName: string;    
    ti: Integer;    
    dt: TDateTime;    
    begin   
    FileName := 'c:\temp\Test.txt';    
    ti := FileAge(FileName);    
    ShowMessage(IntToStr(ti)); //返回: 931951472, 需要转换    
       
    dt := FileDateToDateTime(ti); //转换    
    ShowMessage(DateTimeToStr(dt)); //2007-12-12 14:27:32    
    end;  
     
    
    
    
  • 相关阅读:
    FreeSWITCH第三方库(视频)的简单介绍(二)
    FreeSWITCH第三方库(音频)的简单介绍(一)
    libreoffice实现WORD文档转PDF文档
    Linux TOP命令详解
    java内存泄漏
    FreeSWITCH的传真发送
    CPU的一些参数和排名
    设计模式(九)访问者模式
    设计模式(八)状态模式
    使用PermissionsDispatcher轻松解决Android权限问题
  • 原文地址:https://www.cnblogs.com/wuxi15/p/2877318.html
Copyright © 2020-2023  润新知