在java中列出特定的文件名

在java中列出特定的文件名,java,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.

我想列出并打印出我的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();
}

欢迎来到堆栈溢出

查看String.endsWith(字符串后缀)方法(请参阅 ) 并利用if条件

更新

这个问题有更好的解决办法。因为这是一个家庭作业问题(正如提问者所提到的),我将继续阐述显而易见的方式。如果需要使用“更专业”的方式,可以在谷歌上搜索FileFilter


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

您可以定义一个文件名筛选器:

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

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

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();
}
试试这个 公共空过滤器(){


快速的谷歌搜索可能会找到几个例子(有些甚至在这个网站上!)来说明如何做到这一点。请在访问之前做一点研究。使用带有过滤器的
listFiles
方法有很多更好的方法。@rmlan:我假设这可能是一个“家庭作业”或“学习”相关问题,因此提出了简单而明显的方法。我如何用getter阅读创建的文件而不是“C:/Users/BURAK NURİİİİİİİİİİİİİİİİİİİ立即发布完整答案/代码而不是引导一个解决方案的人。但是,作业问题是信誉点的一个很容易的来源。@ Burki iCouk请考虑更新你原来的问题(使用编辑函数)。所以每一个访问这个线程的人都能看到这些变化。我怎么能把这个代码适应我的代码?你能写吗?嗯,认为这是你的家庭作业的一部分。这个答案是你必须做的99%。你需要思考和理解最后一个百分比!@ Burkii iCouk代码现在应该工作了,我犯了一个错误!我怎么能用G读取创建的文件?更准确地说,而不是“C:/Users/BURAK NURİİİİİİİİİİİİ?
    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();
    }
}