已经提出了这个问题,但是没有提出任何可行的答案。有人在这里问并回答了类似的问题:How to get list of files from a specific folder in internal storage?不幸的是,建议的答案(getAbsoluteDir)实际上使用与提供的文件相同的路径返回了一个新文件。

所以这里又是:我具有用于创建子目录(使用file.mkdir())的字符串名称(使用/data/data/come.my.app/file),该子目录位于应用程序的专用内部存储(File)中。如何使用该字符串名称列出该子目录中的文件?我想出的唯一方法是,通过遍历该应用程序目录中的所有子目录,从子目录名称中获取子目录的对象。当然有更直接的方法...

之所以这样做,是因为我通过一个包(跨“活动”)传递对该目录的引用(由于它包含的文件)。如果有更好的方法可以这样做,我欢迎您提出建议。

最佳答案

不幸的是,建议的答案(getAbsoluteDir)实际上使用与提供的文件相同的路径返回了一个新文件。


好吧,您可以跳过lister行,而使用mydir.list()。但是,那里的代码没有“返回”任何内容-list()返回目录中的文件,并且在该答案中,它显示了该列表上的迭代。


  如何使用该字符串名称列出该子目录中的文件?


您可以使用:

File dir=getDir(whateverYourStringNameIs);

dir.list();


要么:

File dir=new File(getFilesDir(), whateverYourStringNameIs);

dir.list();


基本上,在目录中获得一个File对象(您已经知道如何获取该对象,就像您在其中调用mkdir()一样),然后调用list()以获取内容。一旦有了File对象,其余的就是标准的Java I / O。


  之所以这样做,是因为我通过一个包(跨“活动”)传递了对该目录的引用(由于它包含的文件)。


假设这些都是您自己的活动,则可以在getAbsolutePath()上调用FileString获取Bundle。然后,另一方面,使用new File(bundle.getString("whateverYouCalledIt"))重构File对象。或者,将代表应用程序内部存储部分中相对路径的字符串传递给Bundle,并将其与getDir()getFilesDir()一起使用以构建指向同一路径的File对象。

关于java - 获取Android内部(私有(private))存储的任意子目录中的文件列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17898840/

10-12 00:38
查看更多