表单(UWP和Android)在AppData之外选择目录

表单(UWP和Android)在AppData之外选择目录,android,xamarin.forms,directory,uwp-xaml,Android,Xamarin.forms,Directory,Uwp Xaml,我一整天都在拔头发。我正在将我的WPF应用程序转换为Xamarin.Forms(UWP、IOS和Android)。我目前专注于UWP和Android(还没有苹果设备),我运行了很多程序,但我在读取沙盒目录中没有的文件时遇到了巨大的障碍。目前,我的应用程序允许你选择一个包含图像的文件夹,你可以在其中移动。为了测试读取功能,我将图像放在了“LocalState”目录中,宾果,我的代码运行得很好。现在该程序没有默认文件夹,当我最初在WPF中创建它时,用户会弹出一个窗口,他们会选择自己的文件夹,但我无法

我一整天都在拔头发。我正在将我的WPF应用程序转换为Xamarin.Forms(UWP、IOS和Android)。我目前专注于UWP和Android(还没有苹果设备),我运行了很多程序,但我在读取沙盒目录中没有的文件时遇到了巨大的障碍。目前,我的应用程序允许你选择一个包含图像的文件夹,你可以在其中移动。为了测试读取功能,我将图像放在了“LocalState”目录中,宾果,我的代码运行得很好。现在该程序没有默认文件夹,当我最初在WPF中创建它时,用户会弹出一个窗口,他们会选择自己的文件夹,但我无法为Xamarin获得类似的功能。每次我尝试一些东西,我都会得到一个“拒绝访问”。我见过Android应用程序允许您为模拟器选择一个文件夹,我100%确信您可以设置UWP以使用StorageApplicationPermissions执行权限,但我就是无法将其用于Xamarin.Forms。请帮帮我

好的,先安卓,这样比较容易。您需要在清单中设置读写SD卡的权限。在棉花糖和更高版本上,您需要在运行时请求许可(您需要从本机项目中进行)

在UWP上,最简单的方法是在清单中设置broadfileaccess。除了指出正确的API之外,您只需要以本机方式运行它们


通常,本机代码是通过使用依赖项注入来调用的。如果它太复杂,你可以考虑创建XAMARIN。FILE项目作为一个共享的项目,在这里你可以使用条件编译而不是依赖注入,这是非常简单的。我看了看,但决定不看,因为他们要选多少张照片要花很长时间。除非让我选择一次,并且整个文件夹都可以访问,否则这将是痛苦的。我尝试了BroadFileAccess(在windows隐私设置中打开了它),但它不起作用。仍然被拒绝访问。我也不喜欢这种方式,因为最终用户必须在程序实际运行之前进行更改。访问程序之间共享的文件是否不常见?我甚至不能用UWP阅读我的文档。@dbooher2011 broadfileaccess不是那样工作的,它可以工作。。。