C# 使文件在c中可写的最佳方法#
我试图设置一个标志,当您在文件上C# 使文件在c中可写的最佳方法#,c#,.net,file,file-attributes,C#,.net,File,File Attributes,我试图设置一个标志,当您在文件上右键单击\Properties时,该标志会导致出现只读复选框 谢谢 C#: 两种方式: System.IO.FileInfo fileInfo = new System.IO.FileInfo(filePath); fileInfo.IsReadOnly = true/false; 或 FileInfo上的IsReadOnly属性基本上执行第二种方法中必须手动执行的位翻转。到设置只读标志,实际上使文件不可写: File.SetAttributes(filePat
右键单击\Properties
时,该标志会导致出现只读
复选框
谢谢 C#:
两种方式:
System.IO.FileInfo fileInfo = new System.IO.FileInfo(filePath);
fileInfo.IsReadOnly = true/false;
或
FileInfo
上的IsReadOnly
属性基本上执行第二种方法中必须手动执行的位翻转。到设置只读标志,实际上使文件不可写:
File.SetAttributes(filePath,
File.GetAttributes(filePath) | FileAttributes.ReadOnly);
File.SetAttributes(filePath,
File.GetAttributes(filePath) & ~FileAttributes.ReadOnly);
要删除只读标志,实际上使文件可写,请执行以下操作:
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
,您可能会在这个过程中丢失其他标志。令人惊讶的是,您可以在这里快速找到答案。我喜欢这个网站!我不知道你可以用第一种方法。令人惊叹的!请注意,这将有效地同时清除同一文件上的其他标志。隐藏文件将变为可见,系统文件将变为非系统文件,等等@Lasse如果有人不了解位标志如何工作,第二种方法将变为可见。谢天谢地,您已经解释过了。第一个方法缩短为newfileinfo(filePath){IsReadOnly=false}代码>,很整洁!您是否试图使文件按问题为只读,或按问题标题为可写(而非只读)?在基于Win2k的操作系统上,这是一个复杂的问题。您可以为文件提供只读属性,还可以通过“权限”选项卡授予写入权限。前者只是一个建议,后者实际上是由操作系统强制执行的。@Armentage我认为没有那么复杂。文件标志和NTFS权限集之间有着明显的区别,这个问题显然涉及第一种情况。