为什么要这样写:if (SearchRec.Attr and faDirectory) <> 0 then而这样写有的就测不出来:if SearchRec.Attr = faDirectory then

解决方案 »

  1.   

    to 樓主
    SearchRec.Attr and faDirectory 是位運算
    而SearchRec.Attr = faDirectory是單純的比較運算如果樓主看過faDirectory的值,
    就應該知道faDirectory就是一個整形值:$00000010;
    if (SearchRec.Attr and faDirectory) <> 0 then
    上面的條件只要求SearchRec.Attr的第低5位不為0,即為1即可
    而不管其它位如何
    也就是說如果SearchRec.Attr的值為$00000011,上面的條件也是成立的

    if SearchRec.Attr = faDirectory then顯然不成立