在java中列出特定的文件名
我想列出并打印出我的src文件夹。但该程序列出了所有文件,如.bin.classpat.project。我只想列出并打印.ncat扩展名文件。我该怎么做在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.
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();
}
}