为什么.isFile()返回的是FALSE 呢,明明是TXT文件啊?
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);
}
}
------解决方案--------------------文件构造方法使用错误
在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( "********************************** ");
}