DELPHI文件操作

文件操作实例:

1)        文件路径处理:

Delphi   提供了分析文件名的多个函数,如果你需要从文件名中得到路径名,可用下面的两个函数,这两个函数有一点点微小的差别:   
       ExtractFilePath(FileName:String)   
     
该函数返回路径名,其结尾字符总是“\”   
     ExtractFileDir(FileName:String)   
     
该函数同样返回路径名,但不包括结尾的字符“\”,除非返回的路径是根目录。

2)        判断文件是否存在 FileExists  

begin 

       f:= 'c:"temp"test.txt'

if not FileExists(f) then 

begin

       //……

End;

end;

3)        判断文件夹是否存在 DirectoryExists:

begin 

       dir:= 'c:"temp"test.txt'

if not DirectoryExists (dir) then 

begin

       //……

End;

end;

4)        删除文件 DeleteFile; Windows.DeleteFile

begin 

       f:= 'c:"temp"test.txt'

       //DeleteFile(f);  //返回 Boolean   

       //或者用系统API:

Windows.DeleteFile(PChar(f)); //返回 Boolean   

end;

5)        删除文件夹 RemoveDir; RemoveDirectory 

RemoveDir(dir); //返回 Boolean   

//或者用系统 API:

RemoveDirectory(PChar(dir)); //返回 Boolean   

6)        获取当前文件夹 GetCurrentDir

dir := GetCurrentDir;

ShowMessage(dir); 

7)        设置当前文件夹 SetCurrentDir; ChDir; SetCurrentDirectory

 if SetCurrentDir(dir) then  

       ShowMessage(GetCurrentDir);

//或者 

ChDir(dir); //无返回值

//也可以使用API:

SetCurrentDirectory(PChar(Dir)); //返回 Boolean   

8)        获取指定驱动器的当前路径名 GetDir 

Var 

dir: string;

       b: Byte;

begin

b := 0;

 GetDir(b,dir);   //第一个参数: 1234...分别对应: ABCD... 0 是缺省驱动器。

ShowMessage(dir); 

end;

9)        文件改名 RenameFile

if RenameFile(OldName,NewName) then  

       ShowMessage('改名成功!');   

10)     建立文件夹 CreateDir; CreateDirectory; ForceDirectories

if not DirectoryExists(dir) then  

       CreateDir(dir); //返回 Boolean   

//也可以直接用API:

CreateDirectory(PChar(dir),nil); //返回 Boolean   

//如果缺少上层目录将自动补齐:

dir := 'c:"temp"CodeGear"Delphi"2007"';

ForceDirectories(dir); //返回 Boolean   

11)     删除空文件夹 RemoveDir; RemoveDirectory 

RemoveDir(dir); //返回 Boolean   

//也可以直接用API:

RemoveDirectory(PChar(dir)); //返回 Boolean   

12)     建立新文件 FileCreate

i := FileCreate(FileName);   

if i>0 then  

ShowMessage('新文件的句柄是: ' + IntToStr(i))   

              Else

                     ShowMessage('创建失败!');   

13)     获取当前文件的版本号 GetFileVersion

s := 'C:"WINDOWS"notepad.exe';

 i := GetFileVersion(s); //如果没有版本号返回 -1

ShowMessage(IntToStr(i)); //327681 这是当前记事本的版本号

14)     获取磁盘空间 DiskSize; DiskFree

Var r: Real;

r := DiskSize(3); //获取C:总空间单位是字节  

r := r/1024/1024/1024;   

Str(r:0:2,s); //格式为保留两位小数的字符串

s := 'C盘总空间是: ' + s + ' GB';

r := DiskFree(3); //获取C:可用空间

……

15)     查找一个文件 FileSearch

s := FileSearch(FileName,Dir);   

if s<>'' then  

       ShowMessage(s) //c:"windows"notepad.exe   

16)     搜索文件 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;

17)     读取与设置文件属性 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;   

 

18)     获取文件的创建时间 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;  

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Windows中的通用应用程序的类名 使用API函数复制移动文件 使用API访问ListBox项 使用GetTempFileName创建一个唯一的临文件 使用INI文件 使用INI文件保存、装载字体信息 使用TFileStream 使用TStream保存字符串 使用TTreeview显示目录 使窗体的关闭按钮失效 修改文本文件 允许在资源管理器中拖放文件 减小EXE文件大小 列举驱动器 列出目录下的子目录 创建快捷方式 创建目录 删除文件到回收站 判断文件夹是否共享 剪贴板存放多个控件流 加载CDROM图标 压缩和解压流 取MP3的ID3-Tag 取Program files目录 取可执行文件类型 取和文件类型关联的应用程序 取当前程序所在目录 取指定文件的版本信息 取文件修改日期 取文件日期 取文件最后访问日期 取文件版本号 取文件的所有者 取目录大小 取磁盘可用空间和总空间 取设置当前目录 取设置文件夹的日期 向Exe文件中添加数据 向文件写添加文本 在TMemo光标位置插入一个文件 在Windows开始后自动运行一个程序 在应用程序中添加Exe文件并且执行 在文件中搜索字符串 在文件中搜索指定文本 在文本文件中搜索文本 将剪贴板复制到流和恢复 将文本文件赋值给一个字符串 将资源文件中Rft文本装载到TRichEdit 将长文件名转换成短文件名 彻底删除文件 打开资源管理器且显示指定文件夹 捕获DOS应用程序的输出 改变TPageControls的颜色 改名、移动、删除文件目录 显示‘打开方式’对话框 显示文件属性对话框 显示目录选择对话框 显示目录选择对话框并指定初始目录 替换正运行的DLL 检查文件是否ASCII格式 检查文件是否在本地驱动器 检查文件是否已打开 检查文件是否正在使用 检查目录是否存在 比较两个文件是否相同 添加去掉路径名后的符号 添加文件到文档菜单 清空文档 获取文件类型 获得快捷方式信息 获得文件大小 计算文件的校验和 设置文件日期 读 table-textfile 到 StringGrid 读取二进制文件使用ASCII显示 转换OEM到ANSI 转换短文件名为长文件名 运行一个程序或打开一个关联文件 返回UNC路径 通过CRC-32验证文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值