如何在Android中将文件保存到Uri路径

问题描述

我有一个用户通过 ACTION_OPEN_DOCUMENT_TREE 授予的 Uri 路径。

我将此 Uri 作为字符串表示保存到 SharedPreferences。现在我想将内部文件复制到该文件夹​​的子文件夹中,并为其指定与内部文件相同的文件名。

我用它来获取一个 DocumentFile 到 uriTree:

Uri folder = Uri.parse(<getmysaveduristring>);
DocumentFile file = DocumentFile.fromTreeUri(c,folder);

如何编辑 DocumentFile 以包含子文件夹和文件名?

Uris 和 DocumentFiles 目前让我很困惑。

解决方法

是这样的:

DocumentFile subDirFile = file.createDirectory(subDir);
DocumentFile actualFile = subDirFile.createFile("*/*",dst.getName());

然后使用

OutputStream out = c.getContentResolver().openOutputStream(actualFile.getUri());

打开文件。

我花了一段时间才发现使用 DocumentFiles 是必不可少的。