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;  

相关阅读 >>

Delphi 自带gif控件的动画图片加载和播放

Delphi 自动关闭弹出的窗口

Delphi excel表格数据导入数据库

Delphi fdconnection1获取查询语句的第一个值

Delphi检查getelementbyid返回值的有效性

Delphi 使用tarray.sort对数组排序

Delphi 固定保持datetime日期格式

Delphi webservices传base64字串

Delphi firemonkey 图片显示拉伸不变形

Delphi win7下超级管理员创建普通权限任务

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...