从目录中删除readonly属性

Red*_*wan 40 .net c# directory readonly

如何以编程方式从C#中的目录中删除readonly属性?

Dar*_*rov 83

var di = new DirectoryInfo("SomeFolder");
di.Attributes &= ~FileAttributes.ReadOnly;
Run Code Online (Sandbox Code Playgroud)

  • &= - >附加所以不要触及所有其他属性和〜 - >补充,所以做readonly的反面 (31认同)
  • 嘿darin,这个语法是什么意思?"&=〜"干杯! (4认同)

Kyl*_*man 7

这是使用c#修改文件属性的示例的良好链接

http://www.csharp-examples.net/file-attributes/

根据他们的例子,你可以删除像这样的Read Only属性(我没有测试过这个):

File.SetAttributes(filePath, File.GetAttributes(filePath) & ~FileAttributes.ReadOnly);
Run Code Online (Sandbox Code Playgroud)


小智 5

使用-=赋值运算符是危险的,原因有两个:
1) 只有在ReadOnly设置了属性时它才起作用,因此需要事先进行测试。
2)它正在执行减法运算,这在使用二进制标志时不是最好的选择。如果条件 1(以上)为真,则减法运算有效,但额外的减法运算将改变该FileAttributes字段中的其他位!

使用&= ~FileAttributes.ReadOnly;删除ReadOnly标志。

使用|= FileAttributes.ReadOnly;申请ReadOnly标志。