日期:2014-05-20 浏览次数:20906 次
package com.yangxiutian;
import java.io.File;
import java.io.FileFilter;
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
File[] fs=getFiles("C:\\Documents and Settings\\Administrator\\桌面",3);
for(File temp:fs){
System.out.println(temp.getName());
}
}
/**
*
* @param dir 指定的路径
* @param currentPage 类似于分页
* @return
*/
static File[] getFiles(String dir,int currentPage){
File f=new File(dir);
int pageSize=10;
File[] allFiles=f.listFiles(new FileFilter() {//过滤掉目录
@Override
public boolean accept(File f) {
return f.isFile()?true:false;
}
});System.out.println(allFiles.length);
int init=(currentPage-1)*pageSize;
if(init>allFiles.length){//页数太大
return new File[0];
}
File[] output=Arrays.copyOfRange(allFiles, init, init+pageSize);
if(init+10>allFiles.length){//不足一页的情况 去掉null
int size=allFiles.length-init;
output=Arrays.copyOf(output, size);
}
return output;
}
}
------解决方案--------------------
要实现读完 多次调用getFiles方法即可
int idx=0;
File[] fs=null;
do fs=getFiles(path,idx++);
while(fs.length<10);
------解决方案--------------------