• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
小强强
You never know until you try!
博客园    首页    新随笔    联系   管理    订阅  订阅

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('改名成功!');   

  

//也可以:   

  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;  

 

posted @ 2008-10-01 15:28  强强  阅读(4847)  评论(1)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3