import java.util.regex.*;
import java.io.*;
import java.util.*;
public class DirList{
public static void main(String[] args){
File path=new File(".");
String[] list1;
if(args.length==0)
list1=path.list();
else
list1=path.list(new DirFilter(args[0]));

Arrays.sort(list1,String.CASE_INSENSITIVE_ORDER);
for(String dirItem:list1)
System.out.println(dirItem);

}



}class DirFilter implements FilenameFilter{
private Pattern pattern;
public DirFilter(String regex){
pattern=Pattern.compile(regex);
}
public boolean accept(File dir,String name){
return pattern.matcher(name).matches();

}

}
在doc下输入java DirList java不能输出java后缀的文件

解决方案 »

  1.   

    package test;import java.util.regex.*;
    import java.io.*;
    import java.util.*;public class DirList {
    public static void main(String[] args) {
    System.out.print("请输入您要过滤的后缀:");

    String suffix = new Scanner(System.in).nextLine();
    File path = new File("./src/test");
    String[] list1;
    if (suffix == null)
    list1 = path.list();
    else
    list1 = path.list(new DirFilter(suffix)); Arrays.sort(list1, String.CASE_INSENSITIVE_ORDER);
    for (String dirItem : list1)
    System.out.println(dirItem); }}class DirFilter implements FilenameFilter {
    private Pattern pattern; public DirFilter(String regex) {
    pattern = Pattern.compile(regex);
    } public boolean accept(File dir, String name) {
    return pattern.matcher(name).find();
    }}
      

  2.   

    另外确认你那个目录的确有JAVA文件(如果你是用myeclipse运行的话就更要确认)
      

  3.   

    class DirFilter implements FilenameFilter{
        private Pattern pattern;
        public DirFilter(String regex){
            pattern=Pattern.compile(".+\\."+regex);    
        }    
        public boolean accept(File dir,String name){
            return pattern.matcher(name).matches();    
            
        }
        
    }