尝试第二次访问 json 文件时访问被拒绝
Posted
技术标签:
【中文标题】尝试第二次访问 json 文件时访问被拒绝【英文标题】:Access Denied when trying to access a json file for the second time 【发布时间】:2021-07-10 00:24:42 【问题描述】:我可以在初始化时访问一次文件,但不能再次访问它。
首次访问:
static Gun()
using (var sr = new StreamReader(AppSettings))
Settings = JsonConvert.DeserializeObject<Settings>(sr.ReadToEnd());
sr.Close();
第二次访问:
public static void Save()
// Changing to StreamReader doesn't work either
using (var sr = new StreamWriter(AppSettings))
var settings = JsonConvert.SerializeObject(Settings);
sr.WriteLineAsync(settings);
sr.Close();
当我第二次尝试访问它时,我得到一个未经授权的访问异常。不是正在使用的文件,而是未经授权的文件。为什么我的项目的范围或权限会在同一个应用中发生变化?
【问题讨论】:
您没有发布任何代码或有关您所做工作的有意义的详细信息,因此我们无法为您提供帮助。请阅读How to Ask 以获取撰写有关主题问题的指导 对于 ios 和 android,您无法写入嵌入在应用程序包中的文件。我怀疑 UWP 也是如此,但我并不肯定 @Jason,也许,但正如评论中提到的,对字符串阅读器也没有帮助。 能否分享更多关于如何获取 AppSettings json 文件的代码? AppSettings 参数、路径字符串或Stream
的类型是什么?
【参考方案1】:
第二次尝试访问 json 文件时拒绝访问
一般情况下,我们建议您将设置文件存储在 UWP 应用本地存储中。它拥有完全的访问权限。
例如
string settingFile = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "SettingFile.json");
public void GetSetting()
using (var reader = new System.IO.StreamReader(settingFile))
var json = reader.ReadToEnd();
var settings = JsonConvert.DeserializeObject<Settings>(json);
reader.Close();
public void Save()
using (var sr = new StreamWriter(settingFile))
var newSetting = new Settings()
ID = "SGML"`enter code here`
;
var settings = JsonConvert.SerializeObject(newSetting);
sr.WriteLineAsync(settings);
sr.Close();
【讨论】:
以上是关于尝试第二次访问 json 文件时访问被拒绝的主要内容,如果未能解决你的问题,请参考以下文章