if (SearchRec.Attr and faDirectory) <> faDirectory thenif (SearchRec.Attr and faDirectory) <> 0 thenif SearchRec.Attr = faDirectory then这三种测的目录都不一样...为什么...  那一种是对的..或许我都写错了...请指教!  谢谢!

解决方案 »

  1.   

    if (SearchRec.Attr and faDirectory) > 0 then
      

  2.   

    if (SearchRec.Attr and faDirectory) <> faDirectory then
    if SearchRec.Attr = faDirectory then
    见过这两种写法...
      

  3.   

    這樣應該可以
    if (SearchRec.Attr and faDirectory) = faDirectory then樓主看看位運算就可以知道
      

  4.   

    var
      SearchRec: TSearchRec;
    begin
      SearchRec.Name := 'C:\System Volume Information';
      if (SearchRec.Attr and faDirectory) = faDirectory then
        Button1.Caption := 'dir';
    end;按照你说的..你看看行不行..不要说应该...
      

  5.   

    = 符号通常是不合适的,因为可能这个文件或者目录还包含着其他属性,比如一个文件可能是只读的+隐藏的属性!如果仅仅使用等于符号,则测试的结果既不是隐藏,也不是只读了。使用 <> 0 应该是可取的。
      

  6.   

    因为使用 and 操作符,将 Attr 中指定的其他位清零,只有需要测试的那个位保留原来的值,不是 0,就是测试的那个 fa...。