有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

路径如何导入Java中的目录(和子目录)列表?

以下是迄今为止我掌握的代码:

import java.io.*;

class JAVAFilter implements FilenameFilter {
    public boolean accept(File dir, String name) {
        return (name.endsWith(".java"));
    }
}

public class tester {
   public static void main(String args[])
   {
        FilenameFilter filter = new JAVAFilter();
        File directory = new File("C:\\1.3\\");
        String filename[] = directory.list(filter);
   }
}

此时,它将存储所有*的列表。字符串数组文件名中目录C:\1.3\中的java文件。但是,我想将所有java文件的列表也存储在子目录中(最好同时指定它们在C:\1.3\中的路径)。我该怎么做?谢谢


共 (3) 个答案

  1. # 1 楼答案

    据我所知,您必须手动(递归)执行此操作,即您必须调用C:\1.3\的所有子目录的列表(筛选器),以此类推

  2. # 2 楼答案

    恐怕你不能用list(FilenameFilter)方法来做这件事。您必须列出所有文件和目录,然后自己进行筛选。大概是这样的:

    public List<File> getFiles(File dir, FilenameFilter filter) {
        List<File> ret = new ArrayList<File>();
        for (File f : dir.listFiles()) {
            if (f.isDirectory()) {
                ret.addAll(getFiles(f, filter));
            } else if (filter.accept(dir, f.getName())) {
                ret.add(f);
            }
        }
        return ret;
    }