为什么用findfirst(findnext)查找指定路径下的文件夹时,不能查找出ReadOnly等属性的文件?(50分)

  • 主题发起人 主题发起人 gy87sz
  • 开始时间 开始时间
G

gy87sz

Unregistered / Unconfirmed
GUEST, unregistred user!
我在用findfirst(findnext)函数查找指定路径下的文件夹时,遇到被查找的文件夹
带有ReadOnly等属性时,用条件语句如:
if (sdir.attr=faDirectory) then ...
上述条件不成立(我单步跟踪才发现)

请各方前辈指教!
 
>>if (sdir.attr=faDirectory) then ...
当然不成立呀!
是目录时才成立呀。
 
若本次查找到的对象确是文件夹, 但带有ReadOnly属性, 那么在用sdir参数的attr属性判
断时出现漏判问题.
 
我现在也遇到这个问题,你解决了吗?
 
这个问题我也不知道是不是算解决了。
下面是我到目前为止的解决方法:
var sdir1:TSearchRec;
If (findfirst(path,faAnyFile,sdir1)=0) then
begin
If (sdir1.Attr and faDirectory>0) and
(CompareStr(sdir1.name,'.')<>0) and (CompareStr(sdir1.name,'..')<>0) then
......
end
To Jeny:
你可以去看一下Delphi的帮助文件(关于函数findfirst、TSearchRec类型等)
 
TSearchRec.attr是一个集合,如果用=,要用[faDirectory]才行
 
后退
顶部