我正在开发一个应用程序来通过另一个应用程序(比如应用程序 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 中定义的“列表”方法,但如何才能将从 openInputStream 获得的内容转换为 File 对象?
非常感谢大家
最佳答案
ContentProvider
基本协议(protocol)不支持以这种方式浏览目录结构。
如果您恰好是这两个应用程序的作者,欢迎您为此发明自己的机制,例如:
在您文件夹的
Uri
的某些修改版本上使用query()
以让它返回代表文件夹内容的Cursor
,或者使用
call()
并让它返回一个Bundle
,其中包含一个子文件夹Uri
值列表和一个列表子文档Uri
值,或流回一些 JSON 或 XML 或其他东西作为文件夹的“内容”,其中 JSON 或 XML 描述文件夹的内容
关于Android - 如何使用内容提供者列出文件夹内的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28009747/