我想在所有android文件夹中找到.txt的特定类型文件数组。
我有些偏离我需要循环遍历所有文件夹,然后创建一个文件名为“.txt”的所有项目中的列表。
我的问题是从所有文件夹的顶部开始我需要什么方法?另外我需要一个方法来打开一个特定的文件夹(所以我可以遍历FileNameFilter方法)。
另外,我不介意任何关于如何做这种方法的建议。
public String getFile(int position){
File root = Environment.getExternalStorageDirectory();//This is incorrect it just goes to it's current environment it's folder found for this application.
FilenameFilter filter = new FilenameFilter() {
public boolean accept(File dir, String filename) {
// TODO Auto-generated method stub
return !filename.endsWith(".txt");
}
};
ArrayList<File> items = new ArrayList<File>(Arrays.asList(root.listFiles(filter)));
String returned = items.get(position).toString();
return returned;
答案 0 :(得分:3)
您需要一个递归方法,它将遍历一个文件夹,并且对于每个子项:如果子项是一个文件夹,则以子项作为参数调用自身。如果子项是文件,请检查其名称并在需要时添加它。
您可以执行类似
的操作public void findAllFilesWithExtension( File dir, String extension, List<File> listFiles ) {
List<File> listChildren = Arrays.asList(dir.listFiles());
for( File child : listChildren ) {
if( child.isDirectory() ) {
findAllFilesWithExtension( child, extension, listFiles );
} else if( child.getName().endsWith( extension ) ) {
listFiles.add( child );
} //else
} //for
}//met
首先在你的根目录中调用它。