C#make文件从readonly读/写

Tho*_*son 21 c# file-attributes

如果File.SetAttributes("C:\\myFile.txt", FileAttributes.ReadOnly);将文件设置为只读,如果需要,如何将其设置为读/写?

我怀疑它会FileAttributes.Normal改变文件的任何其他属性吗?MSDN网站上没有非常具有描述性的说明......

该文件是正常的,没有设置其他属性.仅当单独使用时,此属性才有效.

谢谢

mat*_*att 44

要仅删除ReadOnly属性,您可以执行以下操作:

File.SetAttributes("C:\\myfile.txt", File.GetAttributes("C:\\myfile.txt") & ~FileAttributes.ReadOnly);
Run Code Online (Sandbox Code Playgroud)

这将删除该ReadOnly属性,但保留文件中已存在的任何其他属性.

  • 几乎 - `~`运算符返回给定值的按位补码.从语义上讲,上面所说的是"将文件`myfile.txt`的属性设置为`myfile.txt`*的属性,除了ReadOnly属性*." (4认同)
  • 如果要创建文件ReadOnly(或指定任何其他属性),则需要使用| 代替 &.例如:`File.SetAttributes(path,File.GetAttributes(path)| FileAttributes.ReadOnly);` (2认同)

Joe*_*Joe 12

File.SetAttributes替换文件上的所有属性.

设置和删除属性的正确方法是首先获取属性,应用更改并设置它们.

例如

var attr = File.GetAttributes(path);

// set read-only
attr = attr | FileAttributes.ReadOnly;
File.SetAttributes(path, attr);

// unset read-only
attr = attr & ~FileAttributes.ReadOnly;
File.SetAttributes(path, attr);
Run Code Online (Sandbox Code Playgroud)