java 按文件名排序

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-31 01:23   11   0
  1. public class FileUtil {
  2. //for test
  3. public static void main(String []args) {
  4. File dirFile = new File("c://");
  5. File [] sortedFiles = listSortedFiles(dirFile);
  6. }
  7. //list sorted files
  8. public static File[] listSortedFiles(File dirFile) {
  9. assert dirFile.isDirectory();
  10. File[] files = dirFile.listFiles();
  11. FileWrapper [] fileWrappers = new FileWrapper[files.length];
  12. for (int i=0; i<files.length; i++) {
  13. fileWrappers[i] = new FileWrapper(files[i]);
  14. }
  15. Arrays.sort(fileWrappers);
  16. File []sortedFiles = new File[files.length];
  17. for (int i=0; i<files.length; i++) {
  18. sortedFiles[i] = fileWrappers[i].getFile();
  19. }
  20. return sortedFiles;
  21. }
  22. }
  23. class FileWrapper implements Comparable {
  24. /** File */
  25. private File file;
  26. public FileWrapper(File file) {
  27. this.file = file;
  28. }
  29. public int compareTo(Object obj) {
  30. assert obj instanceof FileWrapper;
  31. FileWrapper castObj = (FileWrapper)obj;
  32. if (this.file.getName().compareTo(castObj.getFile().getName()) > 0) {
  33. return 1;
  34. } else if (this.file.getName().compareTo(castObj.getFile().getName()) < 0) {
  35. return -1;
  36. } else {
  37. return 0;
  38. }
  39. }
  40. public File getFile() {
  41. return this.file;
  42. }
  43. }
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

下载期权论坛手机APP