java - 递归处理Java中许多子目录中的相同文件

标签 java

您好,我想使用 Java 处理许多子目录中的文件。伪代码将是

while(mainDir.hasMoreDirectory())
{
   getFilesFromCurrentDirectory()
   passThoseFilesAsArgumentToProcess()
}

我目前正在使用以下代码

public void list(File file) {
    System.out.println(file.getName());
    File[] children = file.listFiles();
    for (File child : children) {
        list(child);
    }
}

上面的代码只是列出了文件。我可以做的另一件事是我必须将文件和目录列表存储在列表中,然后在另一个循环中处理。但是我无法想出我想要的伪代码。我是文件目录的新手,请帮忙。提前致谢。

最佳答案

如果您使用的是 Java 7,则可以 Files.walkFileTree 方法的形式利用 NIO 的增强功能。在 Java 中遍历文件系统从未如此简单。

有一个关于它的用法的简短教程 here .

它实现了访问者模式,因此您无需担心遍历算法本身,只需指定您要对每个条目执行的操作即可。

关于java - 递归处理Java中许多子目录中的相同文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18209004/

相关文章:

java - 如何使用 Java 中的 MyCanvas 创建动态更新的 GUI?

java - 使用 Google Http Java Client 将嵌套的 JSON 节点解析为 POJO

java - 嵌套泛型继承

java - 如何确定 Swing 分量?

java - JOOQ 如何做 UNION 和 WHERE IN

java - 不安全发布并发java

Java - 线程问题

使用正确的remove()方法时显示java.util.ConcurrentModificationException

Java 死代码消除……这段代码是否有被优化掉的风险?

java - 过滤对象的设计模式