mirror of
https://github.com/zfile-dev/zfile.git
synced 2025-04-19 05:34:52 +00:00
♻️ 重构代码, 新增全局异常处理器, 优化类名
This commit is contained in:
47
src/main/java/im/zhaojun/common/util/FileComparator.java
Normal file
47
src/main/java/im/zhaojun/common/util/FileComparator.java
Normal file
@@ -0,0 +1,47 @@
|
||||
package im.zhaojun.common.util;
|
||||
|
||||
import im.zhaojun.common.enums.FileTypeEnum;
|
||||
import im.zhaojun.common.model.FileItem;
|
||||
|
||||
import java.util.Comparator;
|
||||
|
||||
/**
|
||||
* 文件比较器
|
||||
*
|
||||
* - 文件夹始终比文件排序高
|
||||
* - 默认按照名称排序
|
||||
* - 默认排序为升序
|
||||
* - 按名称排序不区分大小写
|
||||
*/
|
||||
public class FileComparator implements Comparator<FileItem> {
|
||||
|
||||
private String sortBy;
|
||||
private String order;
|
||||
|
||||
public FileComparator(String sortBy, String order) {
|
||||
this.sortBy = sortBy;
|
||||
this.order = order;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int compare(FileItem o1, FileItem o2) {
|
||||
FileTypeEnum o1Type = o1.getType();
|
||||
FileTypeEnum o2Type = o2.getType();
|
||||
|
||||
if (o1Type.equals(o2Type)) {
|
||||
int result;
|
||||
switch (sortBy) {
|
||||
case "time": result = o1.getTime().compareTo(o2.getTime()); break;
|
||||
case "size": result = o1.getSize().compareTo(o2.getSize()); break;
|
||||
default: result = o1.getName().compareToIgnoreCase(o2.getName());
|
||||
}
|
||||
return "asc".equals(order) ? result : -result;
|
||||
}
|
||||
|
||||
if (o1Type.equals(FileTypeEnum.FOLDER)) {
|
||||
return -1;
|
||||
} else {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user