Delphi 目录函数,操作[1] FindFirst、FindNext、TSearchRec - 寻找目标目录下的第一个文件和下一个文件
Delphi 目录操作[1] FindFirst、FindNext - 寻找目标目录下的第一个文件和下一个文件
单元:SysUtils
1、FindFirst //寻找目标目录下的第一个文件
函数 原型:
function FindFirst(const Path: string; Attr: Integer; var F: TSearchRec): Integer;
const
faSpecial = faHidden or faSysFile or faVolumeID or faDirectory;
begin
F.ExcludeAttr := not Attr and faSpecial;
F.FindHandle := FindFirstFile(PChar(Path), F.FindData);
if F.FindHandle <> INVALID_HANDLE_VALUE then
begin
Result := FindMatchingFile(F);
if Result <> 0 then FindClose(F);
end else
Result := GetLastError;
end;
返回值:成功找到文件时,返回 0
Arrt 参数可定义:
- faReadOnly = $00000001 platform; //只读文件
- faHidden = $00000002 platform; //隐藏文件
- faSysFile = $00000004 platform; //系统文件
- faVolumeID = $00000008 platform; //卷标文件
- faDirectory = $00000010; //目录文件
- faArchive = $00000020 platform; //归档文件
- faSymLink = $00000040 platform; //链接文件
- faAnyFile = $0000003F; //任意文件
2、FindNext //寻找下一个文件
函数原型:
function FindNext(var F: TSearchRec): Integer;
begin
if FindNextFile(F.FindHandle, F.FindData) then
Result := FindMatchingFile(F) else
Result := GetLastError;
end;
返回值:成功找到文件时,返回 0
Arrt 参数,参考以上.
TSearchRec 参数 是一个文件信息的记录类型,可以通过返回值获取 SearchRec.Name 文件名、SearchRec.Size 文件大小 等信息。
TSearchRec 记录类型原型:
TSearchRec = record
Time: Integer; //文件时间
Size: Integer; //文件大小
Attr: Integer; //文件属性
Name: TFileName; //文件名称
ExcludeAttr: Integer;
FindHandle: THandle platform;
FindData: TWin32FindData platform;
end;
Delphi 示例:
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;
创建时间:2020.06.18 更新时间:
博客园 滔Roy https://www.cnblogs.com/guorongtao 希望内容对你有所帮助,谢谢!