本帖最后由 world97 于 2013-02-07 11:20:54 编辑

解决方案 »

  1.   

    第一句当然不对了,第一句判断文件属性只能是隐藏不能有其他的(如:只读+隐藏,存档+隐藏 都返回false)第二句判断文件属性包含隐藏就返回true
      

  2.   

    当然不正确,文件可以有好几个FileAttributes,比如:只读+隐藏。
      

  3.   

    fi.Attributes 是一个Flag 标示的枚举(因为这样可以包含多个属性),所以是可以用& (与来操作)用 fi.Attributes.ToString() 你就看的很明白了,
    至于
    与或非  的东西,你可以看下书或百度
      

  4.   

    第二句有点看不懂,(fi.Attributes & FileAttributes.Hidden) 不是一个与运算吗?我把&换成&&提示错误,而且与运算不是只返回true或者false吗?怎么能==FileAttributes.Hidden?
      

  5.   

    你把位运算和逻辑运算搞混了吧?&是位运算
      

  6.   

    啊啊我懂了,&在这里是位运算,我一直想着与运算怪不得看不懂,没有想到fi.Attributes是一个枚举,谢谢提醒啦
      

  7.   

    &是位运算举个例子吧if(3&2==2) 是true
      

  8.   

    Windows对象的属性大多是用一个byte的不同的二进制位表示的。所以判断的时候要用&