读取文件列表如果太多了怎么办》
使用java的File.listFiles获得某路径下的所有文件列表。
但是如果此路径下文件数量很多,例如100000个等等,而我不能让他一次返回给我一个十万的数组。
能否让他分批的返回给我结果,或者有什么办法能一次次的分批获取?另一个类似的问题:通过java获取Ftp目录下的文件列表(org.apache的ftpconnection),也是会一次返回所有文件,能否分批?或者有没有变通的办法?谢谢各位大侠。
有效答复即给分。
使用java的File.listFiles获得某路径下的所有文件列表。
但是如果此路径下文件数量很多,例如100000个等等,而我不能让他一次返回给我一个十万的数组。
能否让他分批的返回给我结果,或者有什么办法能一次次的分批获取?另一个类似的问题:通过java获取Ftp目录下的文件列表(org.apache的ftpconnection),也是会一次返回所有文件,能否分批?或者有没有变通的办法?谢谢各位大侠。
有效答复即给分。
实际10w个文件也不算多
public static void main(String[] args) throws Exception{
File file = new File("D:\\");//实例化文件对象file
FileDemo.dis(file);//调用方法dis
}
public static void dis(File file) throws Exception{
if(!file.isDirectory()){//如果file不是文件夹
System.out.println("打印该文件对象的完整路径");
System.out.println(file.getCanonicalPath());//打印该文件对象的完整路径
}
else if(file.isDirectory()){
File[] directoryList=file.listFiles(new MyFileFilter());
for(int i=0;i<directoryList.length;i++){
dis(directoryList[i]);
}
}
}
static class MyFileFilter implements FileFilter{
public boolean accept(File file){
if(file.isFile()){
return false;
}
else{
return true;
}
}
}
}