zoukankan      html  css  js  c++  java
  • delphi 文件的操作

    转载至:http://hi.baidu.com/endlesslove137/blog/item/86f1669990a7ed046f068ced.html

    //判断文件是否存在 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


    //判断文件是否存在 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;

    {设置与获取当前路径}
    SetCurrentDir('C:\Temp\');
    ShowMessage(GetCurrentDir); { C:\Temp }

    {获取当前目录下子目录的全路径}
    p := GetLocaleDirectory('ABC');
    ShowMessage(p); { C:\Temp\ABC\ }

    {获取当前目录下文件的全路径}
    f := GetLocaleFile('X.txt');
    ShowMessage(f); { C:\Temp\X.txt }
    f := GetLocaleFile('ABC\X.txt');
    ShowMessage(f); { C:\Temp\ABC\X.txt }

    {IOUtils 下的 TPath 也有类似功能}
    f := TPath.GetFullPath('X.txt');
    ShowMessage(f); { C:\Temp\X.txt }
    f := TPath.GetFullPath('ABC\X.txt');
    ShowMessage(f); { C:\Temp\ABC\X.txt }

    {判断当前文件夹下的文件或子文件夹是否存在}
    b := LocaleDirectoryExists('ABC'); //这相当于: DirectoryExists(GetCurrentDir + '\ABC');
    b := LocaleFileExists('X.txt'); //这相当于: FileExists(GetCurrentDir + '\X.txt');
    end;

  • 相关阅读:
    LNMP 部署
    zabbix3.2安装graphtree3.0.4
    升级java8---from centos
    mysql5.6-5.7性能调优
    samba server install
    centos7 zabbix3 install done
    实验四总结
    第五周学习小结
    个人的一些html、css笔记
    为什么wait,notify,notifyAll定义在Object中?
  • 原文地址:https://www.cnblogs.com/jshchg/p/1908276.html
Copyright © 2011-2022 走看看