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

Android:存储访问框架--只需将文件复制到extSD即可

梅修贤
2023-03-14

Android上现有的Xamarin Forms应用程序。老板们的新功能要求:将一些更新的文档从USB闪存盘复制到已在平板电脑中的extSD上的已知目录中。

好像不需要博士学位。到目前为止,我们所做的一切都是在内部存储中进行的,所以典型的System.io调用可以正常工作。但Android有一个完整的存储访问框架,可以用于外部SD、Google Drive或其他任何地方。

我看到的每一个问题和教程都是为了同一件事:如何打开一个文档浏览器到SD卡,或者如何创建一个新的create document意图。

我不想做这些。不需要UI。而不是从头开始创建新的文本文件。

我只想将一个文件从闪存驱动器复制到extsd。其他一切都已就绪,可以对内部存储执行此操作。容易偷看。当从闪存驱动器复制到内部SD时,它是单行的。

FileInfo.CopyTo(targetAddress, true);

如何将文件复制到extsd?我真的需要200行的开销来制作一个DOCUMENTPROVIDER、CONTRACT和20个其他东西来复制一个文件吗?我得到的只是“对extsd1234-5678的访问被拒绝”。似乎它应该是相当简单的获得许可的卡,然后只是复制一个文件或制作一个新的文件夹。但我发誓,我读到的所有关于SAF的文章听起来都像是你必须先为他们创造10个类和一个经理人。

任何人都有一个简单的例子,以最简的方式获得对extSD的写权限,并从a复制到B?

共有1个答案

方飞翼
2023-03-14

如果只复制一个文件,那就很简单了。让用户选择带有action_open_document的fle。您将获得该文件的uri。现在让用户使用action_create_document在正确的位置创建一个文件。你有另一个乌里。现在为这些库打开一个InputStream和一个OutputStream。然后从输入读取字节并写入输出。少于200行;-)

 类似资料:
  • 我是Android上存储访问框架的新手。 谢谢

  • 问题内容: 我的应用程序( Android API 15 )制作图片并将其存储在内部存储器的文件夹中。现在,我想将此文件复制到外部存储中的另一个文件夹,例如。我尝试了以下方法: 方法1: 方法2: 方法3: 这些方法都不能解决我的任务。在检查了许多相关主题之后,我发现的唯一建议是验证 在和它确实存在。 该 方法#1 完成执行,但没有文件夹和文件被复制。 在 方法#2 ,应用程序失败,异常的,但对象

  • 这些方法都不能解决我的任务。中检查了一些相关主题,我发现的唯一建议是验证 在中,并且它仍然存在。 方法#1完成执行,但没有复制文件夹和文件。 因为这是我迈向Android的第一步,我觉得我错过了一些小东西。请告诉我,如何在Android中将文件从一个文件夹复制到另一个文件夹,包括文件从内部内存移动到外部内存。

  • 我正在使用存储访问框架将图像下载到外部sd卡。问题是这些图像不会出现在图库中。我试图通过发送DocumentFile uri来通知Android媒体扫描仪使用意图,但这似乎不起作用。下面是我如何尝试通知媒体扫描器添加了新图像: 有没有其他方法来通知Android添加了新图像?(我已经尝试了这里描述的方法,但我无法使用这些方法获得真实路径)

  • 我在一个应用程序上工作,我想访问“/存储/仿真/0/Android/媒体/com.whatsapp/WhatsApp/Media/.Statuses”来为我的应用程序获取状态文件夹中的数据。

  • 我试图使用Adobe reader读取从服务器下载的pdf文件,但问题是当我将其存储在内部存储时,其他应用程序无法读取该文件。现在我想知道如何将此文件复制到外部存储(/sdcard/)中,以便pdf查看器可以查看。 由于安全原因,我将文件存储在内部存储,然后删除外部存储的文件。 我的问题是如何复制保存在内部存储中的文件,而不使用raw或将其放入InputStream中的资产。