import java.io.*;
public class mystring {
public static void main(String[] args){
filter1 obj1=new filter1("txt");
boolean file_status;
File f1=new File("C:\\WINDOWS");
System.out.println("******************************");
String[] filelist=f1.list(obj1);
for(int i=0;i<filelist.length;i++){
File newfile=new File(filelist[i]);
file_status=newfile.isFile();         //此处
if (file_status)
System.out.println("file:"+newfile);
else
System.out.println("directory:"+newfile);
}
System.out.println("**********************************");
}
}class filter1 implements FilenameFilter{
String fileexent;
filter1(String extentobj){
fileexent=extentobj;
}
public boolean accept(File dir,String name){
return name.endsWith("."+fileexent);
}

}

解决方案 »

  1.   

    public class mystring {
    public static void main(String[] args){
    filter1 obj1=new filter1("txt");
    boolean file_status;
    File f1=new File("C:\\WINDOWS");
    System.out.println("******************************");
    String[] filelist=f1.list();
    for(int i=0;i<filelist.length;i++){
    File newfile=new File(filelist[i]);
    file_status=newfile.isDirectory();         //此处

    if (!file_status)
    System.out.println("file:"+newfile);
    else
    System.out.println("directory:"+newfile);
    }
    System.out.println("**********************************");
    }
    }
      

  2.   

    文件构造方法使用错误
    在list了目录下的文件列表之后
    应该用 File(path,fileName)来构造文件,不该用File(fileName)
    修正为String[] filelist=f1.list(obj1);
    for(int i=0;i<filelist.length;i++)
    {
        File newfile=new File(f1.getPath(),filelist[i]);//此处
        file_status=newfile.isFile();         
        if (file_status)
           System.out.println("file:"+newfile);
        else
           System.out.println("directory:"+newfile);
    }
    System.out.println("**********************************");
    }
      

  3.   

    楼上正解,建议加上:
    File f1=new File("C:\\WINDOWS");
    if(!f1.exist())
          return;
    if(f1.isFile())
          return;