• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Delphi文件操作所涉及的一些函数附例子

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

//判断文件是否存在 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); 
//   
  
//第一个参数: 1234...分别对应: 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;  

 

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
vcdelphi回调函数具体说明和实例与分析-转发布时间:2022-07-18
下一篇:
Delphi设置文件属性发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap