关于Delphi遍历指定目录下指定类型文件的函数的问题

//================================================================//遍历某个文件夹下某种文件,//使用... // ================================================================// 遍历某个文件夹下某种文件,// 使用说明// �� _GetFileList(ListBox1.Items,'c:\*.doc');// _GetFileList(MyTStringList,'c:\*.exe');// ================================================================procedure TForm1._GetFileList(AStrings: TStrings ; ASourFile: string);var sour_path,sour_file: string; TmpList:TStringList; FileRec:TSearchrec;begin sour_path:=ExtractFilePath(ASourFile); sour_file:=ExtractFileName(ASourFile); if not DirectoryExists(sour_path) then begin AStrings.Clear; exit; end; TmpList:=TStringList.Create; TmpList.Clear; if FindFirst(sour_path+sour_file,faAnyfile,FileRec) = 0 then repeat if ((FileRec.Attr and faDirectory) = 0) then begin TmpList.Add(sour_path+FileRec.Name) end; until FindNext(FileRec)<>0; SysUtils.FindClose(FileRec); AStrings.Assign(TmpList); TmpList.Free;end; 上面这段代码中我有一处不明白,if ((FileRec.Attr and faDirectory) = 0) then这里具体是什么意思,为什么要判断 展开
 我来答
98...3@qq.com
2012-08-31 · 超过39用户采纳过TA的回答
知道答主
回答量:147
采纳率:0%
帮助的人:92.2万
展开全部
有点格式好不好?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-08-31
展开全部
FindFirst(sour_path+sour_file,faAnyfile,FileRec) = 0 then 搜索出来的是所有文件
if ((FileRec.Attr and faDirectory) = 0) 表示要添加的是目录文件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
余亭鹿稷
2019-09-04 · TA获得超过3862个赞
知道大有可为答主
回答量:3164
采纳率:28%
帮助的人:189万
展开全部
语句:
if
((FileRec.Attr
and
faDirectory)
=
0)
then用于判断当前文件列表项是普通文件还是文件夹。注意:FindFirst函数和FindNext函数查找到的文件列表项包含普通文件和文件夹两种,如果FileRec
变量
的属性中包含faDirectory标志位则说明该列表项为文件夹,如果你不想搜索
子文件夹
的话应该把它过滤掉(你给出的
代码
就是采用这种做法),否则应对其进行递归处理。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式