【发布时间】:2018-02-13 11:12:58
【问题描述】:
在真正的 Android 设备 (Android 8.0 - API 26) 上运行应用程序时,我尝试将字符串附加到位于 .NET 共享项目中的文本文件,但出现此运行时错误:
System.UnauthorizedAccessException: Access to the path
"/Namespace.Folder.FileName.txt" is denied.
导致错误的代码:
string filename= "Namespace.Folder.FileName.txt";
FileStream fs = null; fs = File.Open(filename, FileMode.Append);
StreamWriter sw = new StreamWriter(fs); sw.Write(text)
我在 Android 权限下检查了 ACCESS_COARSE_LOCATION 和 ACCESS_FINE_LOCATION,并且文本文件的构建操作设置为 Embedded Resource。 我试过使用 System.IO.File 并且工作正常,但是这样我不知道如何不覆盖文本文件
var documentsPath =
Environment.GetFolderPath(Environment.SpecialFolder.Personal);
var filePath = Path.Combine(documentsPath, filename);
System.IO.File.WriteAllText(filePath, text);
我想我的问题是将文本存储在共享项目内的文本文件中而不覆盖它的最佳方法是什么?
【问题讨论】:
-
我认为你在这里误解了一些事情。 “我同时检查了 ACCESS_COARSE_LOCATION 和 ACCESS_FINE_LOCATION”这些是用于访问用户 GPS 位置的,因此在这里对您没有帮助。您需要查找文件系统权限。
-
我的错,WriteExternalStorage 是我的意思。
标签: xamarin.forms xamarin.android access-denied