我正在使用Xamarin.Android,我想将.txt
文件保存到SD卡。下面是我正在使用的代码:
private void SavetoSd()
{
var sdCardPath = Android.OS.Environment.ExternalStorageDirectory.Path;
var filePath = System.IO.Path.Combine(sdCardPath, "iootext.txt");
if (!System.IO.File.Exists(filePath))
{
using(System.IO.StreamWriter write = new System.IO.StreamWriter(filePath,true))
{
write.Write(etSipServer.ToString());
}
}
}
但是,我收到以下错误:
System.UnauthorizedAccessException:拒绝访问路径“/mnt/sdcard/iootext.txt”。
我在清单中添加了以下内容:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
如何修复错误?
4条答案
按热度按时间lpwwtiir1#
如果您使用的是Android 6.0+,则需要执行运行时权限检查。可以这样做:
更多信息可以在android文档here中找到。
nqwrtyyt2#
如果文件不存在,首先创建,然后获取绝对路径并将数据写入其中。
webghufk3#
我也遇到了同样的问题,花了几个小时后,我发现如果你运行的sdk高于23,android版本高于6,你应该向用户执行访问请求。请在this链接上找到更多信息
lg40wkob4#
我可能会迟到但是经过一整天的挖掘,我发现对我有效的一件事是来自this link here。我的难题中缺少的部分是在阅读和写入文件时使用
Environment.SpecialFolder.LocalApplicationData
。使用上面链接中的详细信息的摘要示例,为了便于使用而略有修改: