错误:尝试将文件保存到UWP app文件夹中

时间:2017-07-01 19:12:46

标签: c# uwp

我正在尝试在app文件夹中保存JSON文件,我可以从此文件中读取数据,但我无法在此文件中写入数据。

data.json标记为"内容"在文件属性中。

class Json
{
    private string data;
    private const string value1key = "value1";
    private const string value2key = "value2";
    private const string value3key = "value3";

    StorageFile file;
    StorageFolder folder;

    private void File()
    {
        folder = Windows.ApplicationModel.Package.Current.InstalledLocation.GetFolderAsync("Data").AsTask().ConfigureAwait(false).GetAwaiter().GetResult();
        //file = StorageFile.GetFileFromApplicationUriAsync(new Uri(@"ms-appx:///data.json")).AsTask().ConfigureAwait(false).GetAwaiter().GetResult();
        file = folder.GetFileAsync("data.json").AsTask().ConfigureAwait(false).GetAwaiter().GetResult();
    }

    public Json()
    {
        File();
    }

    public string Read()
    {
        return (FileIO.ReadTextAsync(file).AsTask().ConfigureAwait(false).GetAwaiter().GetResult());
    }

    public async void Save()
    {
        JsonObject jsonObject = new JsonObject();
        jsonObject["value1"] = JsonValue.CreateNumberValue(Data._value1);
        jsonObject["value2"] = JsonValue.CreateNumberValue(Data._value2);
        jsonObject["value3"] = JsonValue.CreateNumberValue(Data._value3);

        string newData = jsonObject.Stringify();
        await FileIO.WriteTextAsync(file, newData);
        //FileIO.WriteTextAsync(file, newData).AsTask().ConfigureAwait(true).GetAwaiter();
    }
}

我收到了这个错误: System.UnauthorizedAccessException:'拒绝访问。 (HRESULT异常:0x80070005(E_ACCESSDENIED))'

如果问题没有解决方案,是否有其他方法可以保存应用程序数据?

1 个答案:

答案 0 :(得分:0)

App文件夹中的所有文件都是只读的。因此,在将数据写入该文件之前,请尝试将FileAttributes设置为Normal。你可以使用下面的代码

来做到这一点
File.SetAttributes(file, FileAttributes.Normal);