//判断文件是否存在 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;