从android中的其他文件夹获取文件

时间:2012-03-29 18:11:10

标签: android directory

我想在所有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;

1 个答案:

答案 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

首先在你的根目录中调用它。