Android - 如何使用内容提供程序列出文件夹中的文件
Android - How to list files inside a folder with a content provider
我正在开发一个应用程序来通过另一个应用程序(比如应用程序 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
[...]
但是我怎样才能列出存储在它自己的文件夹中的所有文件?我正在尝试使用 class 文件中定义的 "list" 方法,但是如何将从 openInputStream 获得的内容转换为 File 对象?
非常感谢大家
ContentProvider
基本协议不支持以这种方式浏览目录结构。
如果您恰好是这两个应用程序的作者,欢迎您为此发明自己的机制,例如:
在文件夹 Uri
的某些修改版本上使用 query()
以使其 return 一个 Cursor
代表文件夹的内容,或者
使用 call()
并让它 return 一个 Bundle
包含子文件夹列表 Uri
值和子文档列表 Uri
个值,或
流回一些 JSON 或 XML 或文件夹的 "content" 之类的东西,其中 JSON 或 XML描述文件夹的内容
我正在开发一个应用程序来通过另一个应用程序(比如应用程序 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
[...]
但是我怎样才能列出存储在它自己的文件夹中的所有文件?我正在尝试使用 class 文件中定义的 "list" 方法,但是如何将从 openInputStream 获得的内容转换为 File 对象?
非常感谢大家
ContentProvider
基本协议不支持以这种方式浏览目录结构。
如果您恰好是这两个应用程序的作者,欢迎您为此发明自己的机制,例如:
在文件夹
Uri
的某些修改版本上使用query()
以使其 return 一个Cursor
代表文件夹的内容,或者使用
call()
并让它 return 一个Bundle
包含子文件夹列表Uri
值和子文档列表Uri
个值,或流回一些 JSON 或 XML 或文件夹的 "content" 之类的东西,其中 JSON 或 XML描述文件夹的内容