我希望写一个受保护的文本文件,注意这个内容很重要。 我可以写一个文件来保护它我将使用加密 但不希望任何人阅读该文件的内容。我试过了 使用File.WriteText?但问题是该文件随后被写入 未使用,以便任何人都可以阅读内容。
保护,例如。像SAM文件一样
答案 0 :(得分:0)
在Microsoft Dotnet框架中,c#中提供的TextFile attributes将使您能够保持文件的加密和只读。可以使用FileIOPermissionAccesss完成写保护。如果当前用户是管理员,那么他将能够为特定文件提供保护和删除权限。以下是添加权限的示例代码。
var permissionSet = new PermissionSet(PermissionState.None);
var writePermission = new FileIOPermission(FileIOPermissionAccess.Write, filename);
permissionSet.AddPermission(writePermission);
if (permissionSet.IsSubsetOf(AppDomain.CurrentDomain.PermissionSet))
{
using (FileStream fstream = new FileStream(filename, FileMode.Create))
using (TextWriter writer = new StreamWriter(fstream))
{
// try catch block for write permissions
writer.WriteLine("sometext");
}
}
else
{
//perform some recovery action here
}
答案 1 :(得分:0)
我也面临类似的问题,而在我的情况下问题是 我的文件中的数据应该对任何人都可见,甚至对管理员用户也是如此 并且每次应用程序运行时,应该是以前的数据 取而代之的是新的。
这是我的代码
string pathfile = @"C:\Users\Public\Documents\Filepath.txt";
if (File.Exists(pathfile))
{
File.Delete(pathfile);
}
if (!File.Exists(pathfile))
{
using (FileStream fs = File.Create(pathfile))
{
Byte[] info = new UTF8Encoding(true).GetBytes("Your Text Here");
fs.Write(info, 0, info.Length);
FileSecurity fsec = File.GetAccessControl(pathfile);
fsec.AddAccessRule(new FileSystemAccessRule("Everyone",
FileSystemRights.FullControl, AccessControlType.Deny));
File.SetAccessControl(pathfile, fsec);
}
}