C# 给文件夹加上多个属性,怎么加?

来源:百度知道 编辑:UC知道 时间:2024/07/07 12:19:09
如果是这样的话,好像只有一个属性
DirectoryInfo dr = new DirectoryInfo(DR);
dr.Attributes = FileAttributes.System;
dr.Attributes = FileAttributes.Hidden;
dr.Attributes=FileAttributes.ReadOnly;
我要使文件夹的属性是系统的隐藏的,只读的。

DirectoryInfo dirInfo = new DirectoryInfo( "d:\\test" );

//这个属性,是按位操作的,加上某个属性,就与它相逻辑或就可以了,去掉,就把相应的属性值取反,再与原来的值相与。
dirInfo.Attributes |= FileAttributes.System;
dirInfo.Attributes |= FileAttributes.Hidden;
dirInfo.Attributes |= FileAttributes.ReadOnly;

//当然也可以一次性的
dirInfo.Attributes |= FileAttributes.System | FileAttributes.Hidden | FileAttributes.ReadOnly;

//去掉某个属性
dirInfo.Attributes &= ~FileAttributes.Hidden;
dirInfo.Attributes &= ~FileAttributes.System;

注意,不要用
dirInfo.Attributes = FileAttributes.System | FileAttributes.Hidden | FileAttributes.ReadOnly;
这样的代码,因为文件夹原先可能已经有一些其它属性了,如果直接=,就会去掉原有的属性。

而使用
dirInfo.Attributes |= FileAttributes.System | FileAttributes.Hidden | FileAttributes.ReadOnly;
可以保留原有的属性。

使用或运算符连接枚取值.
dr.Attributes = FileAttributes.System | FileAttributes.Hidden | FileAttributes.ReadOnly;