android - xamarin android 中的 System.UnauthorizedAccessException : Access to the path "/Download" is denied.

标签 android c#-4.0 xamarin xamarin.android xamarin.forms

我正在尝试从字节数组生成 PDF。但它给出了“访问路径被拒绝”的问题。 我已经在 list 文件中授予了权限。我正在发送我的代码块,请检查一下并提供一些建议和反馈,以便我完成它。

 private void ObjbtnViewSlip_Click(object sender, EventArgs e)
    {
        var result = objPaySlipViewModel.GetPaySlipByte(GlobalApplicationSession.EmployeeCode, GlobalApplicationSession.CompanyId, selectedPeriod);
        if (File.Exists(Android.OS.Environment.DirectoryDownloads + "/RSI/PaySlip/temp.pdf") == false)
        {
            Directory.CreateDirectory(Android.OS.Environment.DirectoryDownloads + "/RSI/PaySlip/");
            File.Create(Android.OS.Environment.DirectoryDownloads + "/RSI/PaySlip/temp.pdf");
            System.IO.File.WriteAllBytes(Android.OS.Environment.DirectoryDownloads + "/RSI/PaySlip/", result);
        }
    }

最佳答案

首先,您提供的路径不正确。 Android.OS.Environment.DirectoryDownloads 只会返回“下载”

修改您的代码以获取下载文件夹的完整路径,例如:

//The following will return the downloads folder path.
string directory = Path.Combine(Android.OS.Environment.ExternalStorageDirectory.AbsolutePath, Android.OS.Environment.DirectoryDownloads);
string file = Path.Combine(directory, "/RSI/PaySlip/temp.pdf");

同时检查 AndroidManifest.xml 文件中是否提到了以下内容以授予应用程序权限。

uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"
uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"

关于android - xamarin android 中的 System.UnauthorizedAccessException : Access to the path "/Download" is denied.,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39263692/

相关文章:

Android - 在 2.1 和低版本 android 上创建对话框时出现 java.lang.IllegalArgumentException 错误

java - 创建一个对象,然后将其从在 Intent 中传回的数据添加到 ArrayList

android - sdk platform-tools (23.1) 太旧,无法检查使用 API 24 编译的 API;请更新

c# - 在 C# 中的一行中创建和应用 lambda

c# - 什么以及何时使用元组?

java - Xamarin Studio - 打包错误 - "jarsigner.exe"退出,代码为 1。 (MSB6006)

安卓打印 Intent

asp.net - Response.TrySkipIisCustomErrors不起作用

c# - 如何使用 C# 在 Android 中将复选框文本的位置更改为左侧

ios - 在 Xamarin.iOS 中实现 AVCapturePhotoCaptureDelegate