//判断文件是否存在 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); //
// 第一个参数: 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 ;
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 ;