C#make文件从readonly读/写

时间:2011-11-10 14:41:51

标签: c# file-attributes

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

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

  

文件正常,没有设置其他属性。这个属性是   仅在单独使用时有效。

由于

3 个答案:

答案 0 :(得分:42)

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

File.SetAttributes("C:\\myfile.txt", File.GetAttributes("C:\\myfile.txt") & ~FileAttributes.ReadOnly);

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

答案 1 :(得分:12)

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

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

e.g。

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

答案 2 :(得分:2)

我知道这很晚了,但是我想分享我的解决方案,希望对其他人有所帮助。我需要类似的东西,而完成操作的方法是在IsReadOnly上设置FileInfo属性。

    private void UnsetReadOnlyAttribute(string filePathWithName)
    {
        FileInfo fileInfo = new FileInfo(filePathWithName);
        if (fileInfo.IsReadOnly)
        {
            fileInfo.IsReadOnly = false;
        }
    }