如何制作“只读”文件?
我正在使用C# StreamWritier
类。 问题:
- 如何将文件设置为只读,以便没有人可以删除或写入文件?
- 如何制作隐藏文件?
我正在创建这样的文件:
private void button1_Click(object sender, EventArgs e) { SaveFileDialog save = new SaveFileDialog(); save.FileName = textBox1.Text; save.Filter = "Text File | *.rtf"; if (save.ShowDialog() == DialogResult.OK) { StreamWriter writer = new StreamWriter(save.OpenFile()); writer.WriteLine(textBox2.Text); } writer.Dispose(); writer.Close(); }
您好,您可以尝试使用此方法
1
public static void SetFileReadAccess(string FileName, bool SetReadOnly) { FileInfo fInfo = new FileInfo(FileName); // Set the IsReadOnly property. fInfo.IsReadOnly = SetReadOnly; }
2
File.SetAttributes(yourFilePath, FileAttributes.Hidden);
……
您可以使用File.SetAttributes
设置ReadOnly属性。
例:
File.SetAttributes(textBox1.Text, FileAttributes.ReadOnly);
请注意,这仅设置readonly标志,它不会修改NTFS访问控制列表(这意味着每个熟练的用户都可以删除只读属性)。 另请注意,这会重置文件的所有其他属性,这在您的情况下应该不是问题,因为您无论如何都要创建新文件。 如果需要保留现有属性, File.GetAttributes
首先使用File.GetAttributes
并将现有标志与新标志合并(请参阅链接的MSDN页面上的示例)。
如果您需要保护文件免受恶意写入操作,您必须了解NTFS安全性(谷歌为“NTFS安全”提供大量资源)。 一旦你理解了这一点,下面的问题将告诉你如何在C#中修改它们:
- 在C#.NET中设置NTFS权限
将其用于只读文件:
FileAttributes yourFile = File.GetAttributes(yourFilePath); File.SetAttributes(yourFilePath, FileAttributes.ReadOnly);
“yourFilePath”是一个字符串。
对于隐藏文件:
FileAttributes yourFile = File.GetAttributes(yourFilePath); File.SetAttributes(yourFilePath, FileAttributes.Hidden);
对于普通文件(不是只读,也不是隐藏):
FileAttributes yourFile = File.GetAttributes(yourFilePath); File.SetAttributes(yourFilePath, FileAttributes.Normal);
我知道你没有要求设置一个普通文件,但我认为知道这个是有用的。
- 获取程序集中的类型(错误:System.Reflection.ReflectionTypeLoadException)
- 如何为二进制格式化程序创建SerializationBinder,以处理类型从一个程序集和名称空间到另一个程序集和名称空间的移动
- 为什么TestServer(AspNetCore)在静态文件上出现404错误?
- HttpClient – 如何判断服务器是否更快停机?
- 如何在依赖属性中获取/设置什么都不做?
- System.Web.Routing.RouteCollection.GetRouteData中的exception
- 如何分解成员访问表达式链?
- 将ViewModel传递给Layout.cshtml中的部分视图调用
- 使用Linq使用C#更新XML