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