问题描述
我有一个用户通过 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 是必不可少的。