有一个文件夹,里面有许多种类型的文件,如何获取某一种类型的所有文件,如何做?要用到什么方法?
使用java代码实现。

解决方案 »

  1.   

    可以把所有的文件名都获取到,然后判断扩展名。
     File fs[] = f.listFiles();
      

  2.   

    可以在选择时直接过滤:        File dir = new File("C:\\");
            File[] fs = dir.listFiles(new FilenameFilter() {
                public boolean accept(File dir, String name) {
                    return name.toLowerCase().endsWith(".sys"); // 符合要求就返回true
                }
            });
            for (File file : fs) {
                System.out.println(file);
            }
      

  3.   

    File[] listFiles(FileFilter filter)
    API说明:
    返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。除了返回数组中的路径名必须满足过滤器外,此方法的行为与 listFiles() 方法相同。如果给定 filter 为 null,则接受所有路径名。否则,当且仅当在路径名上调用过滤器的 FileFilter.accept(java.io.File) 方法返回 true 时,该路径名才满足过滤器。 这种问题楼主应该先翻翻API说明文档。
      

  4.   


    public static void main(String[] args) {
    for(File f : getFiles("D:\\workspace")){
    System.out.println(f.getAbsolutePath());
    }
    }

    public static List<File> getFiles(String path){
    List<File> files = new ArrayList<File>();
    File file = new File(path);
    getAllFiles(file, files);
    return files;
    }

    private static void getAllFiles(File file, List<File> files){
    if(file.isFile()){
    if(file.getName().endsWith(".java"))
    files.add(file);
    }else{
    File[] fs = file.listFiles();
    for(File f : fs){
    getAllFiles(f, files);
    }
    }
    }
      

  5.   

    listFile(new FileFilter(){
      public boolean(){
         实现你想要的的文件还是目录;
       }
    });
    for(File file:files){
       迭代实现文件的读取
    }