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)