function FindFirst(const Path: string; Attr: Integer; var F: TSearchRec): Integer;
其中有一句:FindFirst returns 0 if a file was successfully located
也就是说,当成功找到文件时,返回0.
FindNext 则是寻找下一个
TSearchRec 是一个文件信息的纪录,当FindFirst返回SearchRec时,你可以通过SearchRec.Name获取文件名,以及SearchRec.Size获取文件大小等信息。
TSearchRec类型
(1)TSearchRec是一个记录类型,在delphi帮助文档下可以看到其定义:
TSearchRec是一个文件信息的纪录(Record)类型
在Windows下原型:
type
TSearchRec = record
Time: Integer;
Size: Integer;
Attr: Integer;
Name: TFileName;
ExcludeAttr: Integer;
FindHandle: THandle;
FindData: TWin32FindData;
end;
(2).FindFirst函数在delphi帮助下的定义:
function FindFirst(const Path: string; Attr:
Integer; var F: TSearchRec): Integer;
其中有一句:FindFirst returns 0 if a file was successfully
located
也就是说,当成功找到文件时,返回0.
(3).sr.Attr是查找的文件属性(attribute
Files).faDiractory是目录文件
整句的意思
如果查找的文件类型是目录文件那么 ...
(4).当文件没有查找完毕(还能查找到下一个文件)..
*****************************************************
FindFirst是用来寻找目标目录下的第一个文件,FindNext则是寻找下一个 TSearchRec是一个文件信息的纪录,当FindFirst返回SearchRec时,你可以通过SearchRec.Name获取文件名,以及SearchRec.Size获取文件大小等信息。
TSearchRec类型定义如下:
type
TSearchRec = record
Time : Integer;
Size : Integer;
Attr : Integer;
Name : TFileName;
ExcludeAttr : Integer;
FindHandle : THandle;
FindData : TWin32FindData;
end;
当利用FindFirst和FindNext函数找到一个文件后,利用这个类型可以获得文件的属性、大小和修改时间等信息。
var SearchRec:TSearchRec; //搜索对象
ext,AppPath:string;
begin listbox1.Clear; //清空列表框
AppPath:=edit1.text; //设置要搜索的目标目录
ext:='*.*'; //设置要搜索的文件后缀名
FindFirst(AppPath+ext,faAnyFile,SearchRec); //-faDirectory listbox1.Items.Add(SearchRec.Name); //添加文件名称
while FindNext(SearchRec)=0 do
listbox1.Items.Add(SearchRec.Name); //添加文件名
end;
//更多注释: //TSearchRec 结构是内涵文件大小、名称、属性与时间等信息 //TSearchRec 中的属性是一个整数值, 可能的值有: //faReadOnly 1 只读文件 //faHidden 2 隐藏文件 //faSysFile 4 系统文件 //faVolumeID 8 卷标文件 //faDirectory 16 目录文件 //faArchive 32 归档文件 //faSymLink 64 链接文件 //faAnyFile 63 任意文件 //s 的值也可以使用?通配符,好像只支持7个?, 如果没有条件就是*, 譬如: C:\* //实际使用中还应该在 repeat 中提些条件, 譬如判断如果是文件夹就递归搜索等等