当前位置: 首页 > 知识库问答 >
问题:

错误访问路径"/存储/仿真/0/abc.txt"被拒绝在Xamarin Android

万俟旭
2023-03-14

我正在尝试在Android 8 API Level 26 emulator上运行Xamarin Android应用程序。当我试图将日志写入文件时,这是一个例外。

例外:

系统UnauthorizedAccessException:对路径“/storage/emulated/0/abc.txt”的访问被拒绝

代码:

string filename = "abc.txt";
var documentsPath = Android.OS.Environment.ExternalStorageDirectory.AbsolutePath;
var filePath = Path.Combine(documentsPath, filename);
using (FileStream fs = new FileStream(filePath, FileMode.Append, FileAccess.Write))
        using (StreamWriter sw = new StreamWriter(fs))
        {
            sw.WriteLine(text);
        }

我也给了READ_EXTERNAL_STORAGEWRITE_EXTERNAL_STORAGE权限。

目标Android版本:Android8.0 API级别26 Oreo

例外情况详情:

{系统。未授权访问异常:拒绝访问路径"/存储/仿真/0/NECMobilePos_log21092018.txt"。IO. FileStream... ctor(System.字符串路径,System.文件模式,System.IO. FileAccess访问,System.IO. FileShare共享,System.Int32缓冲区大小,System.布尔匿名,System.IO. FileOptions选项)[0x001aa]在 /Users/builder/jenkins/workspace/xamarin-android-d15-6/xamarin-android/external/mono/mcs/class/corlib/System.IO/FileStream.cs:239System.IO. FileStream... ctor(System.字符串路径,System.文件模式,System.IO. FileAccess访问,System.IO. FileShare共享,System.Int32缓冲区大小,System.布尔isAsync, System.布尔匿名)[0x00000]在 /Users/builder/jenkins/workspace/xamarin-android-d15-6/xamarin-android/external/mono/mcs/class/corlib/System.IO/FileStream.cs:149System.IO. FileStream... ctor(System.字符串路径,System.文件模式,System.IO. FileAccess访问)[0x00000]在 /Users/builder/jenkins/workspace/xamarin-android-d15-6/xamarin-android/external/mono/mcs/class/corlib/System.IO/FileStream.cs:86(包装远程调用与检查)System.ctor(字符串,System.文件模式,系统。IO. FileAccess)在NECMobilePOS. Client.DroidLatest.FileLogger_Android。保存文本(System.字符串filenamePassed, System.字符串文本)[0x000d1]在C:\ABC\XYZ\FileLogger_Android.cs:73}

共有1个答案

鲁景山
2023-03-14

对于版本

https://devblogs.microsoft.com/xamarin/requesting-runtime-permissions-in-android-marshmallow/

或者现在进行测试,可以转到应用权限并允许存储权限。

 类似资料:
  • 问题内容: 在某种程度上,当我尝试通过命令行访问MySQL时,已经设法解决了该错误: 我尝试使用此HowTo重置密码,但没有任何运气。 我已经卸载了mysql completley并重新安装了,但是仍然需要输入密码。我不知道为什么会这样! 有人可以帮我获得默认安装的MySQL吗? 环境 Fedora Core 10,完全根访问权限,安装了Apache和PHP 感谢您的任何帮助!! 编辑 对于所有想

  • 我最近才更新到新版本的forge,没有改变我的设置,当我去构建我的应用程序时,我得到了一个错误,说它找不到文件…

  • 这个问题已经问过好几次了,但没有一个解决办法对我有效。我以管理员身份运行DOS命令窗口,但当运行keytool命令安装证书时,我得到了上面的错误: 我在Windows10上使用JDK 1.8.0_191。为什么拒绝对管理员的访问?

  • 问题内容: 我有一个HTML表单( upload.htm ),其中包含HTML文件上传控件。 上一页中还有一个JavaScript方法,如下所示: 我在一个页面内的页面( uploadpage.htm )中 称其 为: 我尝试从 uploadpage.htm 页面执行以下所示的语句: 我收到一条错误消息,说 Access被拒绝,并且调试器在显示的第一个JavaScript函数处停止。这两个文件都位

  • 问题内容: 我在IE11和Ajax中遇到了一个特殊的错误。对于我使用下面的代码发出的几乎所有请求,一切都很好,但是当我尝试与copy + paste方法结合使用时,它会返回“访问被拒绝”错误。所以总结一下 对于我编写的所有功能,此代码在大多数浏览器中均可正常运行 在IE 11 + Windows 8.1中,它在大多数情况下均可运行,但运行特定的复制和粘贴功能时除外 有趣的是,当使用IE 11时,尽

  • 问题内容: 我有2个项目(相互连接和通信)在2个tomcat实例上运行。在我本地,我有2只雄猫在奔跑。在所有不同的浏览器上,一切都很好,但IE却表示访问被拒绝加载Java文件。因此,我包括了一个图书馆,该图书馆可以解决 本地 问题。 但是当我再次将代码部署到DEV环境上2个不同的tomcat实例(在Dev服务器上)时,我看到相同的错误,访问被拒绝。 而且我与项目1相关的所有文件(例如js / cs