File排序:按照文件夹->文件,文件名排序
创建比较器:
public class FileCompatator implements Comparator<File> {
@Override
public int compare(File f1, File f2) {
// TODO Auto-generated method stub
if (f1.isDirectory() && f2.isDirectory()) {// 都是目录
return f1.getName().compareToIgnoreCase(f2.getName());//都是目录时按照名字排序
} else if (f1.isDirectory() && f2.isFile()) {//目录与文件.目录在前
return -1;
} else if (f2.isDirectory() && f1.isFile()) {//文件与目录
return 1;
} else {
return f1.getName().compareToIgnoreCase(f2.getName());//都是文件
}
}
}
文件过虑:
public class MyFileFilter implements FileFilter {
@Override
public boolean accept(File pathname) {
// TODO Auto-generated method stub
if (!pathname.getName().startsWith(".")) {
return true;
} else {
return false;
}
}
}
获取文件列表:
<span style="white-space:pre"> </span>if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
File file = Environment.getExternalStorageDirectory();
filelists = file.listFiles(new MyFileFilter());
filelists = FileUitls.sort(filelists);
文件排序
public class FileUitls {
public static File[] sort(File[] filelists) {
List<File> files = Arrays.asList(filelists);//将数组转为集合
Collections.sort(files, new FileCompatator());//利用集合工具类排序
File[] filelists1 = files.toArray(new File[files.size()]);//将文件重新转为数组
return filelists1;
}
}