java按文件大小、名称、日期排序方法

论坛 期权论坛 脚本     
匿名技术用户   2021-1-6 12:29   11   0
  1. //java按文件大小、名称、日期排序
  2. //java按文件大小、名称、日期排序方法
  3. import java.io.*;
  4. import java.util.*;
  5. public class FileOrder{
  6. //按照文件大小排序
  7. public static void orderByLength(String fliePath) {
  8. List< File> files = Arrays.asList(new File(fliePath).listFiles());
  9. Collections.sort(files, new Comparator< File>() {
  10. public int compare(File f1, File f2) {
  11. long diff = f1.length() - f2.length();
  12. if (diff > 0)
  13. return 1;
  14. else if (diff == 0)
  15. return 0;
  16. else
  17. return -1;
  18. }
  19. public boolean equals(Object obj) {
  20. return true;
  21. }
  22. });
  23. for (File f : files) {
  24. if(f.isDirectory()) continue;
  25. System.out.println(f.getName()+":"+f.length());
  26. }
  27. }
  28. //按照文件名称排序
  29. public static void orderByName(String fliePath) {
  30. List files = Arrays.asList(new File(fliePath).listFiles());
  31. Collections.sort(files, new Comparator< File>() {
  32. @Override
  33. public int compare(File o1, File o2) {
  34. if (o1.isDirectory() && o2.isFile())
  35. return -1;
  36. if (o1.isFile() && o2.isDirectory())
  37. return 1;
  38. return o1.getName().compareTo(o2.getName());
  39. }
  40. });
  41. for (File f : files) {
  42. System.out.println(f.getName());
  43. }
  44. }
  45. //按日期排序
  46. public static void orderByDate(String fliePath) {
  47. File file = new File(fliePath);
  48. File[] fs = file.listFiles();
  49. Arrays.sort(fs,new Comparator< File>(){
  50. public int compare(File f1, File f2) {
  51. long diff = f1.lastModified() - f2.lastModified();
  52. if (diff > 0)
  53. return 1;
  54. else if (diff == 0)
  55. return 0;
  56. else
  57. return -1;
  58. }
  59. public boolean equals(Object obj) {
  60. return true;
  61. }
  62. });
  63. for (int i = fs.length-1; i >-1; i--) {
  64. System.out.println(fs[i].getName());
  65. System.out.println(new Date(fs[i].lastModified()));
  66. }
  67. }
  68. public static void main(String args[]){
  69. // orderByLength("c:/java");
  70. // orderByName("c:/java");
  71. orderByDate("c:/java");
  72. }
  73. }
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP