代码之家  ›  专栏  ›  技术社区  ›  Vivek Nuna Chetan sabhaya

错误访问路径“/storage/emulated/0/abc.txt”在Xamarin Android中被拒绝

  •  -1
  • Vivek Nuna Chetan sabhaya  · 技术社区  · 6 年前

    我正在尝试在android8api-level26模拟器上运行Xamarin-Android应用程序。当我试图将日志写入文件时,这是一个例外。

    例外情况:

    System.UnauthorizedAccessException:访问路径

    代码:

    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_STORAGE WRITE_EXTERNAL_STORAGE 权限也是。

    目标Android版本: Android 8.0 API 26级Oreo

    {System.UnauthorizedAccessException:访问路径 System.IO.FileStream..ctor(System.String路径,System.IO.FileMode 模式,System.IO.FileAccess访问,System.IO.FileShare共享, System.Int32 bufferSize,System.Boolean匿名, 中的System.IO.FileOptions)[0x001aa] /Users/builder/jenkins/workspace/xamarin-android-d15-6/xamarin-android/external/mono/mcs/class/corlib/System.IO/FileStream.cs:239 在System.IO.FileStream..ctor(System.String路径,System.IO.FileMode System.Int32 bufferSize,System.Boolean isAsync,System.Boolean 匿名)[0x00000]输入 /Users/builder/jenkins/workspace/xamarin-android-d15-6/xamarin-android/external/mono/mcs/class/corlib/System.IO/FileStream.cs:149 在System.IO.FileStream..ctor(System.String路径,System.IO.FileMode 模式,System.IO.FileAccess访问)[0x00000]输入 /Users/builder/jenkins/workspace/xamarin-android-d15-6/xamarin-android/external/mono/mcs/class/corlib/System.IO/FileStream.cs:86 at(wrapper remoting invoke with check) System.IO.FileStream..ctor(字符串、System.IO.FileMode、System.IO.FileAccess) 在NECMobilePOS.Client.DroidLatest.FileLogger\u Android.SaveText C:\ABC\XYZ\FileLogger\u Android.cs:73}

    1 回复  |  直到 6 年前
        1
  •  7
  •   Zujaj Misbah Khan    5 年前

    对于版本>=23,您需要提供运行时权限。您可以从下面的链接浏览文档。

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