C# 使文件从只读读/写

发布于 2024-12-14 21:31:21 字数 271 浏览 1 评论 0原文

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

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

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

谢谢

If File.SetAttributes("C:\\myFile.txt", FileAttributes.ReadOnly); sets a file as read only, how do I set it back to read/write if I need to?

I suspect it would be FileAttributes.Normal however will this change any other properties of the file? There isn't an awfully descriptive note on the MSDN site...

The file is normal and has no other attributes set. This attribute is
valid only if used alone.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

许一世地老天荒 2024-12-21 21:31:21

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

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

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

To remove just the ReadOnly attribute, you'd do something like this:

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

This will remove the ReadOnly attribute, but preserve any other attributes that already exist on the file.

单身狗的梦 2024-12-21 21:31:21

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

File.SetAttributes replaces ALL attributes on the file.

The proper way to set and remove attributes is to first get the attributes, apply changes, and set them.

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);
苍景流年 2024-12-21 21:31:21

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

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

I understand this is very late, but I wanted to share my solution hoping it helps others. I needed something similar and the way I accomplished was by setting the IsReadOnly property on FileInfo.

    private void UnsetReadOnlyAttribute(string filePathWithName)
    {
        FileInfo fileInfo = new FileInfo(filePathWithName);
        if (fileInfo.IsReadOnly)
        {
            fileInfo.IsReadOnly = false;
        }
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文