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

Xamarin.forms Android无法访问USB OTG文件夹

商柏
2023-03-14

我使用的是Android5.0设备,其中usb大容量存储器通过usb OTG电缆挂载在“/storage/usbotg”上。不幸的是,从我的应用程序,我只有读取访问该文件夹。请注意,我设置了写入外部存储权限,因为我可以写入设备存储。

string Root = "/storage/usbotg";                        
string[] Dirs = Directory.GetDirectories(Root);

string NewFolder = Path.Combine(Root, "NewFolder");          
Directory.CreateDirectory(NewFolder);

异常消息:拒绝访问路径“/storage/usbotg/newfolder”。

如果我使用:

string Root =  "/storage/emulated/0"; 

一切工作正常,“NewFolder”已经创建。

谢谢你的帮助

共有1个答案

濮阳研
2023-03-14

在每个Android版本中,使用文件系统访问应用程序私有存储之外的数据都受到了更多的限制。

建议的选项有:

>

  • 使用GetExternalFilesDirs()GetExternalCachedirs、...:这将为您提供一个或多个特定于您的应用程序的目录(通常是以包名称命名的目录)。这对可移动介质不起作用,除非它们被采用。

    使用存储访问框架:要求用户(使用ACTION_OPEN_DOCUMENT_TREE)选择存储根。然后可以通过SAF API管理所选目录的内容。您可以持久化该权限,因此只需询问用户一次。似乎是ES文件探索所做的事情来获得写权限。

    马克·墨菲更详细的解释。

  •  类似资料:
    • 为什么我会受伤 回溯(最近一次调用last):文件“C:\temp\py\tesst.py”,第8行,在 我错过什么了吗?

    • 我正在使用path标准(使用maven war)将webapp部署到tomcat instalation目录。问题是我在webapp路径和浏览器中有一个javascript文件夹,我无法访问该文件夹。我已经检查了文件是否创建到正确的文件夹,他们在那里! 如果我尝试在浏览器上运行 给我“404页未找到”错误。 如果我把js文件夹放在根目录(而不是标准目录)中,一切都正常。

    • 我正在通过 Windows(10) 启动时的批处理文件启动我的应用程序。这是我在批处理文件中的内容 - 当windows启动时,我得到了 无法访问文件.jar 然而,问题是在这个错误消息之后,应用程序仍然在启动中,并且运行良好。正在访问jar但我仍然无法访问jar错误的原因是什么,如何避免它?找不到这个特定案例的任何答案。

    • 问题内容: 重新启动Rails应用程序时出现以下错误。我以前在另一台服务器上使用另一个应用程序遇到过此问题,但不记得是什么问题了,或者我是怎么解决的。 我正在Ubuntu上使用capistrano部署到杂种集群。 当我做 结果是: 日志目录是/ apps / staging / shared / log的目录。 这是怎么回事? 问题答案: 原来是一个细微的错误: 当这两行引发异常时 rails假定

    • 如果有人能帮忙,那就太好了!

    • 我使用的是Spring,无法读取Spring.xml文件。Application ationContext上下文=new ClassPathXmlApplication ationContext("Spring.xml");向我显示此错误:造成原因:java.io.FileNotFoundExcture:类路径资源[Spring.xml]无法打开,因为它不存在 xml路径强调文本