首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

判断资料是不是隐藏的两句代码结果竟然不一样

2013-02-24 
判断文件是不是隐藏的两句代码结果竟然不一样?本帖最后由 world97 于 2013-02-07 11:20:54 编辑fi.Attribu

判断文件是不是隐藏的两句代码结果竟然不一样?
本帖最后由 world97 于 2013-02-07 11:20:54 编辑
 fi.Attributes == FileAttributes.Hidden

(fi.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden

敲代码的时候用了第一句,发现达不到效果,然后上网搜索了一下发现了第二句的写法,竟然成功了?第一句的写法不对吗?
[解决办法]
第一句当然不对了,第一句判断文件属性只能是隐藏不能有其他的(如:只读+隐藏,存档+隐藏 都返回false)

第二句判断文件属性包含隐藏就返回true
[解决办法]
当然不正确,文件可以有好几个FileAttributes,比如:只读+隐藏。

[解决办法]
fi.Attributes 是一个Flag 标示的枚举(因为这样可以包含多个属性),所以是可以用& (与来操作)

用 fi.Attributes.ToString() 你就看的很明白了,
至于
与或非  的东西,你可以看下书或百度

[解决办法]

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

第二句判断文件属性包含隐藏就返回true
第二句有点看不懂,(fi.Attributes & FileAttributes.Hidden) 不是一个与运算吗?我把&换成&&提示错误,而且……

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

热点排行