Android - 如何使用内容提供商列出文件夹中的文件

时间:2015-01-18 12:38:51

标签: android android-contentprovider shared-directory

我正在开发一个应用程序,通过另一个应用程序(比如应用程序B)中定义的内容提供程序来读取文件。 现在,我可以使用以下方式从我的应用程序(应用程序A)中读取特定文件:

[...]
InputStream content = getContentResolver().openInputStream(content://.../path_of_the_folder/file_name.txt);
BufferedReader reader1 = new BufferedReader(new InputStreamReader(content));
String linetext;
       while ((linetext = reader1.readLine()) != null) { //printout
[...]

但是如何列出自己存储在文件夹中的所有文件?我正在尝试使用类File中定义的“list”方法,但是如何将从openInputStream获取的内容转换为File对象?

非常感谢所有

1 个答案:

答案 0 :(得分:3)

ContentProvider基本协议不支持以这种方式浏览目录结构。

如果您恰好是这两个应用的作者,欢迎您为此创建自己的机制,例如:

  • 在您文件夹query()的某个修改版本上使用Uri,让它返回代表文件夹内容的Cursor,或

  • 使用call()并让它返回Bundle,其中包含子文件夹Uri值列表和子文档Uri值列表,或者< / p>

  • 将一些JSON或XML或其他内容作为&#34;内容&#34;一个文件夹,其中JSON或XML描述文件夹的内容

相关问题