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

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(
'改名成功!');
//也可以:
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人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

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

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

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