file.listFiles()按文件大小、名称、日期排序方法
原文地址:http://blog.csdn.net/dezhihuang/article/details/53287602
按照文件大小排序
public static void orderByLength(String fliePath) { List<File> files = Arrays.asList(new File(fliePath).listFiles()); Collections.sort(files, new Comparator<File>() { public int compare(File f1, File f2) { long diff = f1.length() - f2.length(); if (diff > 0) return 1; else if (diff == 0) return 0; else return -1; } public boolean equals(Object obj) { return true; } }); for (File f : files) { if (f.isDirectory()) continue; System.out.println(f.getName() + ":" + f.length()); } }
按照文件名称排序
public static void orderByName(String fliePath) { List files = Arrays.asList(new File(fliePath).listFiles()); Collections.sort(files, new Comparator<File>() { @Override public int compare(File o1, File o2) { if (o1.isDirectory() && o2.isFile()) return -1; if (o1.isFile() && o2.isDirectory()) return 1; return o1.getName().compareTo(o2.getName()); } }); for (File f : files) { System.out.println(f.getName()); } }
按照日期排序
public static void orderByDate(String fliePath) { File file = new File(fliePath); File[] fs = file.listFiles(); Arrays.sort(fs, new Comparator<File>() { public int compare(File f1, File f2) { long diff = f1.lastModified() - f2.lastModified(); if (diff > 0) return 1; else if (diff == 0) return 0; else return -1; } public boolean equals(Object obj) { return true; } }); for (int i = fs.length - 1; i > -1; i--) { System.out.println(fs[i].getName()); System.out.println(new Date(fs[i].lastModified())); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!