Android 文件与文件夹排序实现
在 Android 开发中,经常需要对文件列表进行排序,通常希望文件夹排在文件前面,或者按名称字母顺序排列。可以通过实现 Comparator<File> 接口来自定义排序规则。
代码示例
static Comparator<File> comparator = new Comparator<File>() {
@Override
public int compare(File f1, File f2) {
// 先处理 null 情况
if (f1 == null || f2 == null) {
if (f1 == null) {
return -1;
} else {
return 1;
}
}
// 判断是否为目录
boolean f1IsDir = f1.isDirectory();
boolean f2IsDir = f2.isDirectory();
// 如果一个是目录,另一个是文件,目录排在前面
if (f1IsDir != f2IsDir) {
return f1IsDir ? -1 : 1;
}
// 同为目录或同为文件时,按名称比较
return f1.getName().compareTo(f2.getName());
}
};
使用说明
调用 Arrays.sort() 或 Collections.sort() 并传入上述 Comparator 即可实现自定义排序。

