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

发布于 2024-07-29 06:03:28 字数 100 浏览 6 评论 0原文

我正在尝试设置标志,当您在文件上右键单击 \ Properties 时,会出现Read Only 复选框。

谢谢!

I'm trying to set flag that causes the Read Only check box to appear when you right click \ Properties on a file.

Thanks!

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

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

发布评论

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

评论(4

悲歌长辞 2024-08-05 06:03:28

两种方法:

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 属性本质上执行在第二种方法中必须手动执行的位翻转。

Two ways:

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

or

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

The IsReadOnly property on FileInfo essentially does the bit-flipping you would have to do manually in the second method.

酒儿 2024-08-05 06:03:28

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

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 您最终可能会在此过程中丢失其他标志。

To set the read-only flag, in effect making the file non-writeable:

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

To remove the read-only flag, in effect making the file writeable:

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

To toggle the read-only flag, making it the opposite of whatever it is right now:

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

This is basically bitmasks in effect. You set a specific bit to set the read-only flag, you clear it to remove the flag.

Note that the above code will not change any other properties of the file. In other words, if the file was hidden before you executed the above code, it will stay hidden afterwards as well. If you simply set the file attributes to .Normal or .ReadOnly you might end up losing other flags in the process.

亣腦蒛氧 2024-08-05 06:03:28

C# :

File.SetAttributes(filePath, FileAttributes.Normal);

File.SetAttributes(filePath, FileAttributes.ReadOnly);

C# :

File.SetAttributes(filePath, FileAttributes.Normal);

File.SetAttributes(filePath, FileAttributes.ReadOnly);
夏日落 2024-08-05 06:03:28

一行答案(不更改其他文件属性):

new FileInfo(filename).IsReadOnly = true/false;

One-line answer (without changing other file attributes):

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