JavaSE练习--IO_File文件序号标号器

请输入要标号文件夹路径:C:\Users\FrancisGaozhu\TempFile\test\1_b.mp4
路径指向非文件夹!

请输入要标号文件夹路径:C:\Users\FrancisGaozhu\TempFile\test1
文件夹不存在!

请输入要标号文件夹路径:C:\Users\FrancisGaozhu\TempFile\test1
操作完成!

 1 package com.heqing.main;
 2 
 3 import com.heqing.model.FileCompareBy;
 4 
 5 import java.io.File;
 6 import java.util.Arrays;
 7 import java.util.Scanner;
 8 
 9 public class Main {
10     public static void main(String[] args) {
11         Scanner input = new Scanner(System.in);
12         //region 提示用户输入对应的路径
13         System.out.print("请输入要标号文件夹路径:");
14         String inputLine = input.nextLine();
15         //endregion
16         File file = new File(inputLine);
17         //region 基本信息校验
18         if (!file.exists()){
19             System.out.println("文件夹不存在!");
20             return;
21         }
22         if (!file.isDirectory()){
23             System.out.println("路径指向非文件夹!");
24             return;
25         }
26         //endregion
27         File[] files = file.listFiles();
28         FileCompareBy fileCompareBy = new FileCompareBy();
29         Arrays.sort(files,fileCompareBy);
30         int successCount = 0;
31         for (int i = 0; i < files.length; i++) {
32             File current = files[i];
33             String currentName = current.getName();
34             StringBuilder sbCurrentName = new StringBuilder();
35             if (currentName.contains("_")){
36                 currentName = currentName.split("_")[1];
37             }
38             sbCurrentName.append(i+1).append("_").append(currentName);
39             File newCurrent = new File(current.getParent(),sbCurrentName.toString());
40             if (current.renameTo(newCurrent)) {
41                 successCount++;
42             }
43         }
44         if (successCount == files.length){
45             System.out.println("操作完成!");
46         }else {
47             System.out.println("操作未完成!");
48         }
49     }
50 }
 1 package com.heqing.model;
 2 
 3 import java.io.File;
 4 import java.util.Comparator;
 5 
 6 public class FileCompareBy implements Comparator {
 7     @Override
 8     public int compare(Object o1, Object o2) {
 9         if (!(o1 instanceof File) || !(o2 instanceof File)){
10             throw new NotFileException("输入类型非文件类型");
11         }
12         File file1 = (File)o1,file2 = (File)o2;
13         return file1.lastModified() < file2.lastModified() ? -1 : file1.lastModified() > file2.lastModified() ?1 : 0;
14     }
15 }
1 package com.heqing.model;
2 
3 public class NotFileException extends RuntimeException{
4     public NotFileException(String message) {
5         super(message);
6     }
7 }

 

posted @ 2021-08-17 11:20  heqing_echo  阅读(62)  评论(0)    收藏  举报