如果我调用 DocumentFile.fromTreeUri()
主目录并列出其内容,它将DocumentFile
按预期返回与目录中包含的文件夹和文件相关的所有对象,但是当我尝试调用DocumentFile.fromTreeUri()
其中Uri
一个DocumentFile
文件夹时,而不是返回所有DocumentFile
相关对象按预期到子目录中包含的文件夹和文件,它实际上在其根目录上返回完全相同的调用内容Uri
例如,我有一个包含 3 个文件的下载文件夹和一个包含 2 个文件的子文件夹,其中包含以这种方式构建的
Download
-->file1
-->file2
-->file3
-->Subfolder
----->subfile1
----->subfile2
如果我调用 通过意图回调选择DocumentFile.fromTreeUri().listFiles()
的下载文件夹
它会返回我Uri
content://com.android.externalstorage.documents/tree/primary%3ADownload
-->file1
-->file2
-->file3
-->Subfolder
到目前为止一切都很好,现在如果我尝试获取与调用相关Uri
的DocumentFile
对象,我会得到这显然看起来是正确的,但是如果我调用它,当我列出它的内容时,我会再次得到Subfolder
mysub.getUri()
content://com.android.externalstorage.documents/tree/primary%3ADownload/document/primary%3ADownload%2FSubfolder
DocumentFile.fromTreeUri().listFiles()
-->file1
-->file2
-->file3
-->Subfolder
与主下载文件夹 Uri 上的调用完全相同。如果我mysub.listFiles()
直接打电话也会发生同样的情况。这似乎是一个完全不合逻辑的设计。
我如何才能真正DocumentFile
从与其父级相关的子文件夹中正确获取与子文件夹相关的对象DocumentFile
,以便子文件夹DocumentFile
可以列出其内容而不是其父级的内容?