已经提出了这个问题,但是没有提出任何可行的答案。有人在这里问并回答了类似的问题: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()
上调用File
为String
获取Bundle
。然后,另一方面,使用new File(bundle.getString("whateverYouCalledIt"))
重构File
对象。或者,将代表应用程序内部存储部分中相对路径的字符串传递给Bundle
,并将其与getDir()
或getFilesDir()
一起使用以构建指向同一路径的File
对象。关于java - 获取Android内部(私有(private))存储的任意子目录中的文件列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17898840/