如何在Windows窗体应用程序中保存文本文件

时间:2018-09-10 11:15:00

标签: c# winforms

我正在创建Windows窗体应用程序。出于安全原因,我要将许可证信息存储到文本文件中并希望对其进行加密。

var serializer = new XmlSerializer(typeof(Licence));

var saveData = new Licence
{
    ProductId = txtProductID.Text,

    ProductKey = txtProductKey.Text,

    CreatedDate = validate.CreationDate,

    ExpireDate = validate.ExpireDate,

    DaysLeft = validate.DaysLeft
};

using (var writeFile = File.OpenWrite("data.txt"))
{
    serializer.Serialize(writeFile, saveData);
}

使用此代码,我可以成功创建文本文件。但是当我发布并安装该项目时,它给了我错误。 错误消息是...

  

拒绝访问路径“ C:\ Program Files(x86)\ WebenixSystem \ Metro Whole Sale \ data.txt”。

     

**************异常文本**************   System.UnauthorizedAccessException:拒绝访问路径“ C:\ Program Files(x86)\ WebenixSystem \ Metro Whole Sale \ data.txt”。

如何解决此问题,以及如何加密此txt文件?请帮助...

2 个答案:

答案 0 :(得分:1)

错误提示-您无权访问要将文件保存到的路径。
由于文件将被加密,因此您不必隐藏它。因此,您可以将其保存在用户帐户的documents文件夹中。

使用此行代码将把路径返回到“我的文档”文件夹。您可以在其中创建一个新文件夹,或将文件直接保存到此路径。

请注意,这是相对路径,因此适用于所有用户。

String pathToDocuments = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

答案 1 :(得分:0)

还要注意:许可证信息不会在不同用户之间共享。如果用户将使用其他帐户登录,则不会找到许可证数据,因为每个用户都有自己的“ MyDocuments”,“ AppData”等...