使用c#,VS2013,windows store app
在简单程序中有一个文件,其中一些数据以JSON格式保存。我将尝试将新数据添加到此文件中,然后将其存储。
尝试使用下一个代码保存JSON文件:
string result = await JsonConvert.SerializeObjectAsync(groups);
//get file path
string pathOfFile = Path.GetDirectoryName(file.Path); //get path
StorageFolder folder = await StorageFolder.GetFolderFromPathAsync(pathOfFile); //create dir by path
StringBuilder builder = new StringBuilder();
builder.Append(folder.Path);
builder.Append("\\EventsData.json");
Uri uriToSave = new Uri(builder.ToString());
//create file
StorageFile fileToWrite =
await StorageFile.GetFileFromApplicationUriAsync(uriToSave);
using (IRandomAccessStream stream =
await file.OpenAsync(FileAccessMode.ReadWrite))
{
// write the JSON file
using (DataWriter textWriter = new DataWriter(stream))
{
textWriter.WriteString(result);
await textWriter.StoreAsync();
}
}
但在执行代码StorageFile fileToWrite = await StorageFile.GetFileFromApplicationUriAsync(uriToSave);
期间,异常System.ArgumentException
在debagging期间获得了下一个Uri
问题 - 为什么我有这样的例外,如果我错了 - 如何在所需目录中的Windows应用商店中保存文件?
同时查看MSDN sample for writing data to file,并使用教程中的代码但得到System.UnauthorizedAccessException
:
StorageFile sampleFile = await folder.CreateFileAsync("EventsData.json", CreationCollisionOption.ReplaceExisting);
await Windows.Storage.FileIO.WriteTextAsync(sampleFile, result);
为什么Access denied
或我错过了什么?
答案 0 :(得分:1)
未经用户明确许可,您无法写入安装目录。
以下是协议:
ApplicationDataContainer
)中是否有文件,如果没有,请从安装目录中读取该文件。ApplicationDataContainer
上的指南以获取更多信息)