首页 > 解决方案 > 尝试从 url 下载文件时 Xamarin 中的未经授权访问

问题描述

我现在非常坚持使用 Xamarin.Forms/Android,我需要从手机的“下载”目录中的特定 URL 下载 csv 文件,但是我不断收到System.UnauthorizedAccessException: Access to the path "/storage /emulated/0/Download/myFile.csv”被拒绝。

public async Task DownloadAsync(string url)
    {
        try
        {
            using(var webClient = new WebClient())
            {
                var directoryPath = Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryDownloads).AbsolutePath;
                string pathToNewFile = Path.Combine(directoryPath, myFile.csv);

                await webClient.DownloadFileTaskAsync(new Uri(url), pathToNewFile);
            }
        }
        catch(Exception ex)
        {
            throw;
        }
    }`

这些是我的权限设置:

我不明白为什么它不起作用。顺便说一句,我正在物理设备(Pixel3)上进行测试,也许我应该在手机内设置一些配置......不知道这里出了什么问题

标签: xamarindownload

解决方案


您的代码不适用于 API 级别 23 或更高级别。

您必须在运行时请求许可。这是关于此的帖子:https ://devblogs.microsoft.com/xamarin/requesting-runtime-permissions-in-android-marshmallow/


推荐阅读