已提出此问题,但尚未提出可行的答案。有人在这里提出并回答了类似的问题:如何从内部存储中的特定文件夹中获取文件列表? 不幸的是,建议的答案(getAbsoluteDir)实际上使用与提供的文件相同的路径返回一个新文件。
所以这里又是这样:我有用于创建一个子目录(使用 )的字符串名称file.mkdir(),该子目录驻留在我的应用程序的私有内部存储(/data/data/come.my.app/file)中。如何使用该字符串名称列出驻留在该子目录中的文件?我能想到的唯一方法是File通过循环遍历该应用程序目录中的所有子目录来从子目录名称中获取子目录的对象。当然还有更直接的方法...
我这样做的原因是我通过捆绑包(跨活动)传递对此目录的引用(因为它包含文件)。如果有更好的方法,我愿意接受建议。
不幸的是,建议的答案(getAbsoluteDir)实际上使用与提供的文件相同的路径返回一个新文件。
好吧,你可以跳过这lister行,直接使用mydir.list()。但是,那里的代码不会“返回”任何内容 -list()返回目录中的文件,并且在该答案中,它显示对该列表的迭代。
如何使用该字符串名称列出驻留在该子目录中的文件?
您可以使用:
File dir=getDir(whateverYourStringNameIs);
dir.list();
Run Code Online (Sandbox Code Playgroud)
或者:
File dir=new File(getFilesDir(), whateverYourStringNameIs);
dir.list();
Run Code Online (Sandbox Code Playgroud)
基本上,File在目录中获取一个对象(您已经知道如何获取该对象,正如您调用的mkdir()那样),然后调用list()以获取内容。一旦获得了File对象,剩下的就是标准的 Java I/O。
我这样做的原因是我通过捆绑包(跨活动)传递对此目录的引用(因为它包含文件)。
假设这些都是您自己的活动,您可以要求getAbsolutePath()您File为String您的Bundle. 然后,在另一侧,用于new File(bundle.getString("whateverYouCalledIt"))重构该File对象。或者,传入Bundle 表示应用程序内部存储部分内的相对路径的字符串,并将其与getDir()或一起使用getFilesDir()来构建File指向同一路径的对象。
| 归档时间: |
|
| 查看次数: |
3020 次 |
| 最近记录: |