在c#中使文件可写的最佳方法

时间:2009-07-29 18:05:40

标签: c# .net file file-attributes

我正在尝试设置标记,以便在文件Read Only上显示right click \ Properties复选框。

谢谢!

3 个答案:

答案 0 :(得分:63)

两种方式:

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);

FileInfo上的IsReadOnly属性实际上是在第二种方法中手动完成的位翻转。

答案 1 :(得分:36)

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

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,则可能会在此过程中丢失其他标记。

答案 2 :(得分:1)

c#:

File.SetAttributes(filePath,FileAttributes.Normal);

File.SetAttributes(filePath,FileAttributes.ReadOnly);