在java中列出特定的文件名

时间:2016-03-02 17:14:38

标签: java

我想列出并打印出我的src文件夹。但程序列出了所有文件,如.bin .classpat .project。我想列出并打印.ncat扩展名文件。我怎样才能做到这一点 ?

File f = null;
String[] paths;
try{      
    f = new File("C:/Users/BURAK NURÇİÇEK/workspace/cs 222");
    paths = f.list();
    for(String path:paths){
        System.out.println(path);
    }
}catch(Exception e){
    e.printStackTrace();
}

4 个答案:

答案 0 :(得分:5)

您可以定义FileNameFilter:

String[] list = dir.list(new FilenameFilter() {
    @Override
    public boolean accept(File file, String name) {
        return name.endsWith("suffix");
    }
});

答案 1 :(得分:0)

欢迎使用Stack Overflow。

看一下 String.endsWith(String suffix)方法(参见 here) 并利用if条件。

<强>更新

这个问题有一个更好的解决方案。因为这是一个家庭作业问题(正如提问者所提到的),我将继续详细说明。如果他被要求使用“更专业”的方式,可以google for FileFilter。

继续:您正在迭代“存储”在路径变量(for-loop)中的所有文件。在循环内部,您当前正在打印每个文件名。您要做的是检查文件是否以所需的扩展名结尾。如果满足此条件,则可以打印。如果不是:不要做任何事情。

答案 2 :(得分:0)

简单的方法是检查路径是否以扩展名结尾,如下所示:

File f = null;
String[] paths;
try{      
    f = new File("C:/Users/BURAK NURÇİÇEK/workspace/cs 222");
    paths = f.list();
    for(String path:paths){
        if(path.toLowerCase().endsWith(".ncat")){
            System.out.println(path);
        }
    }
}catch(Exception e){
    e.printStackTrace();
}

答案 3 :(得分:0)

试试这个 public void filter(){

    String[] paths;
    try{      
        f = new File("C:/Users/BURAK NURÇİÇEK/workspace/cs 222");
        paths = f.list(new FilenameFilter() {
            @Override
            public boolean accept(File file, String name) {
                return name.endsWith("txt");
            }
        });

        for(String path:paths){
            System.out.println(path);
        }
    }catch(Exception e){
        e.printStackTrace();
    }
}