我正在尝试在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))'
如果问题没有解决方案,是否有其他方法可以保存应用程序数据?
答案 0 :(得分:0)
App文件夹中的所有文件都是只读的。因此,在将数据写入该文件之前,请尝试将FileAttributes
设置为Normal
。你可以使用下面的代码
File.SetAttributes(file, FileAttributes.Normal);