关于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这里具体是什么意思,为什么要判断
展开
3个回答
展开全部
有点格式好不好?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-08-31
展开全部
FindFirst(sour_path+sour_file,faAnyfile,FileRec) = 0 then 搜索出来的是所有文件
if ((FileRec.Attr and faDirectory) = 0) 表示要添加的是目录文件
if ((FileRec.Attr and faDirectory) = 0) 表示要添加的是目录文件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
语句:
if
((FileRec.Attr
and
faDirectory)
=
0)
then用于判断当前文件列表项是普通文件还是文件夹。注意:FindFirst函数和FindNext函数查找到的文件列表项包含普通文件和文件夹两种,如果FileRec
变量
的属性中包含faDirectory标志位则说明该列表项为文件夹,如果你不想搜索
子文件夹
的话应该把它过滤掉(你给出的
代码
就是采用这种做法),否则应对其进行递归处理。
if
((FileRec.Attr
and
faDirectory)
=
0)
then用于判断当前文件列表项是普通文件还是文件夹。注意:FindFirst函数和FindNext函数查找到的文件列表项包含普通文件和文件夹两种,如果FileRec
变量
的属性中包含faDirectory标志位则说明该列表项为文件夹,如果你不想搜索
子文件夹
的话应该把它过滤掉(你给出的
代码
就是采用这种做法),否则应对其进行递归处理。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |