Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何导入Java中的目录(和子目录)列表?_Java_Path_Directory - Fatal编程技术网

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

如何导入Java中的目录(和子目录)列表?,java,path,directory,Java,Path,Directory,以下是迄今为止我掌握的代码: 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[]) {

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

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\中的路径。我该如何执行此操作?谢谢!

恐怕您不能使用
列表(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;
}
public List getFiles(文件目录、文件名过滤器){
List ret=new ArrayList();
对于(文件f:dir.listFiles()){
if(f.isDirectory()){
ret.addAll(getFiles(f,filter));
}else if(filter.accept(dir,f.getName())){
再加上(f);
}
}
返回ret;
}

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

您应该从Apache查看