在单个列表中列出所有文件夹中的所有文件

2023-11-29

我正在寻找列出 root/Android 设备中所有文件的解决方案。

假设根目录中有三个文件夹,但我想在一个列表中显示所有这些文件夹中的所有文件...

现在如果我使用

File f = new File("/sdcard");

然后它会列出来自的所有文件sdcard仅文件夹...如果我会使用

File f = new File("/download");

然后它将仅列出下载文件夹中的所有文件..如果我将使用

File f = new File("/");

然后它只会列出root目录文件...不是里面的文件/sdcard or /下载.

那么我应该按照什么步骤列出所有文件,并使用过滤器仅列出内部所有文件夹中的 .csv 文件root?


尝试这个:

 .....
 List<File> files = getListFiles(new File("YOUR ROOT"));
 ....
 private List<File> getListFiles(File parentDir) {
    ArrayList<File> inFiles = new ArrayList<File>();
    File[] files = parentDir.listFiles();
    for (File file : files) {
        if (file.isDirectory()) {
            inFiles.addAll(getListFiles(file));
        } else {
            if(file.getName().endsWith(".csv")) {
                inFiles.add(file);
            }
        }
    }
    return inFiles;
}

或者没有递归的变体:

private List<File> getListFiles2(File parentDir) {
    List<File> inFiles = new ArrayList<>();
    Queue<File> files = new LinkedList<>();
    files.addAll(Arrays.asList(parentDir.listFiles()));
    while (!files.isEmpty()) {
        File file = files.remove();
        if (file.isDirectory()) {
            files.addAll(Arrays.asList(file.listFiles()));
        } else if (file.getName().endsWith(".csv")) {
            inFiles.add(file);
        }
    }
    return inFiles;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在单个列表中列出所有文件夹中的所有文件 的相关文章

随机推荐