C# 错误:尝试将文件保存到UWP应用程序文件夹中
我试图在app文件夹中保存一个JSON文件,我可以从这个文件中读取数据,但是我不能在这个文件中写入数据 data.json在文件属性中标记为“Content”C# 错误:尝试将文件保存到UWP应用程序文件夹中,c#,uwp,C#,Uwp,我试图在app文件夹中保存一个JSON文件,我可以从这个文件中读取数据,但是我不能在这个文件中写入数据 data.json在文件属性中标记为“Content” class Json { private string data; private const string value1key = "value1"; private const string value2key = "value2"; private const string value3key = "
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))'
如果问题无法解决,是否有其他方法保存应用程序数据?应用程序文件夹中的所有文件都是只读的。因此,在将数据写入文件之前,请尝试将
FileAttributes
设置为Normal
。您可以使用下面的代码来完成
File.SetAttributes(file, FileAttributes.Normal);
您是否已检查此项:?我得到以下信息:System.UnauthorizedAccessException:“对路径“C:\Users\Carlos Giovano\documents\visual studio 2017\Projects\App1\App1\bin\x86\Debug\AppX\Data\Data.json”的访问被拒绝。”。我在VS(2015)的前一个版本中使用周年更新测试了这段代码,并且成功了!我不知道怎么做,为什么。你试过在管理中运行VS吗?你试过上面的代码吗?