36

我正在尝试设置导致Read Only复选框在您right click \ Properties打开文件时出现的标志。

谢谢!

4

3 回答 3

66

两种方式:

System.IO.FileInfo fileInfo = new System.IO.FileInfo(filePath);
fileInfo.IsReadOnly = true/false;

或者

// Careful! This will clear other file flags e.g. `FileAttributes.Hidden`
File.SetAttributes(filePath, FileAttributes.ReadOnly/FileAttributes.Normal);

IsReadOnlyon 属性基本上完成了您在第二种FileInfo方法中必须手动进行的位翻转。

于 2009-07-29T18:09:38.040 回答
37

设置只读标志,实际上使文件不可写:

File.SetAttributes(filePath,
    File.GetAttributes(filePath) | FileAttributes.ReadOnly);

删除只读标志,实际上使文件可写:

File.SetAttributes(filePath,
    File.GetAttributes(filePath) & ~FileAttributes.ReadOnly);

切换只读标志,使其与现在相反:

File.SetAttributes(filePath,
    File.GetAttributes(filePath) ^ FileAttributes.ReadOnly);

这基本上是有效的位掩码。您设置一个特定位来设置只读标志,您清除它以删除该标志。

请注意,上面的代码不会更改文件的任何其他属性。换句话说,如果文件在您执行上述代码之前是隐藏的,那么之后它也会保持隐藏状态。如果您只是将文件属性设置为,.Normal否则.ReadOnly您最终可能会在此过程中丢失其他标志。

于 2009-07-29T18:23:10.397 回答
1

C# :

File.SetAttributes(filePath, FileAttributes.Normal);

File.SetAttributes(filePath, FileAttributes.ReadOnly);
于 2009-07-29T18:09:10.180 回答