1

如果我调用 DocumentFile.fromTreeUri()主目录并列出其内容,它将DocumentFile按预期返回与目录中包含的文件夹和文件相关的所有对象,但是当我尝试调用DocumentFile.fromTreeUri()其中Uri一个DocumentFile文件夹时,而不是返回所有DocumentFile相关对象按预期到子目录中包含的文件夹和文件,它实际上在其根目录上返回完全相同的调用内容Uri

例如,我有一个包含 3 个文件的下载文件夹和一个包含 2 个文件的子文件夹,其中包含以这种方式构建的

Download
-->file1
-->file2
-->file3
-->Subfolder
----->subfile1
----->subfile2

如果我调用 通过意图回调选择DocumentFile.fromTreeUri().listFiles()的下载文件夹 它会返回我Uricontent://com.android.externalstorage.documents/tree/primary%3ADownload

-->file1
-->file2
-->file3
-->Subfolder

到目前为止一切都很好,现在如果我尝试获取与调用相关UriDocumentFile对象,我会得到这显然看起来是正确的,但是如果我调用它,当我列出它的内容时,我会再次得到Subfoldermysub.getUri()content://com.android.externalstorage.documents/tree/primary%3ADownload/document/primary%3ADownload%2FSubfolderDocumentFile.fromTreeUri().listFiles()

-->file1
-->file2
-->file3
-->Subfolder

与主下载文件夹 Uri 上的调用完全相同。如果我mysub.listFiles()直接打电话也会发生同样的情况。这似乎是一个完全不合逻辑的设计。

我如何才能真正DocumentFile从与其父级相关的子文件夹中正确获取与子文件夹相关的对象DocumentFile,以便子文件夹DocumentFile可以列出其内容而不是其父级的内容?

4

1 回答 1

5

我也有同样的问题。我在升级文档文件版本后解决了它。

implementation 'androidx.documentfile:documentfile:1.0.1'

于 2021-05-21T02:34:38.993 回答