0

我需要的 :

1)我需要找到所有 TEXT 文件,这也是我的 sdcard 文件夹/子文件夹。

2)之后,我将所有文件名和路径存储到 ArrayList 中。

所以,首先我必须对第一点进行排序。这需要什么课程?

我搜索的内容:

1)FilenameFilter 但没有得到正确的使用方法

4

2 回答 2

1

试试下面的代码来从 sdcard 中获取所有的文本文件。

        private txtFileFilter txtff = new txtFileFilter(); 
         private void scanAllTxtFiles(File location, ArrayList<String> list) {
                    File[] files = location.listFiles(txtff);
                    if (files != null) {
                        for (File f : files) {
                            if (f.isDirectory()) {
                                scanAllTxtFiles(f, list);
                            } else if (f.isFile()) {
                                list.add(f.getAbsolutePath().substring(
                                        externalPathLength));
                            }
                        }
                    }
                }
            }
      private class txtFileFilter implements FileFilter {
                @Override
                public boolean accept(File pathname, String filename) {
                    // TODO Auto-generated method stub
                    if (filename.endsWith(".txt")) {
                        return true;
                    } 
                    return false;
                }
            }
于 2013-10-01T11:17:01.470 回答
0

试试这个会给你一个SD卡中的所有文本文件

private ArrayList<String> allImages = new ArrayList<String>();
    String[] extensions = { "txt" };

    private void loadAllImages(String rootFolder) {

        File file = new File(rootFolder);
        if (file.isDirectory()) {
            File[] files = file.listFiles();
            if (files != null && files.length > 0) {
                for (File f : files) {
                    if (f.isDirectory()) {
                        loadAllImages(f.getAbsolutePath());
                    } else {
                        for (int i = 0; i < extensions.length; i++) {
                            if (f.getAbsolutePath().endsWith(extensions[i])) {
                                allImages.add(f.getAbsolutePath());
                            }
                        }
                    }
                }
            }
        }

    }
于 2013-10-01T11:24:51.833 回答