图片文件重命名

  今天收到一个任务,将所有图片进行重命名,于是就有了下面的函数,循环遍历文件夹进行文件重命名.

 1     private static void uploadImageFile(File file) {
 2         File[] imageList = file.listFiles();
 3         // 循环遍历文件
 4         for (File picFile : imageList) {
 5             if (picFile.isFile()) {
 6                 String fileName = picFile.getName();
 7                 String suffix = fileName.substring(fileName.lastIndexOf("."));
 8                 String order = new StringBuilder().append(prefix + ((int)(Math.random() * 9000 + 1000))).append(suffix)
 9                         .toString();
10                 File renameFile = new File(file + "\\" + order);
11                 picFile.renameTo(renameFile);
12                 System.out.println(picFile.getName());
13             }else if(picFile.isDirectory()){
14                 uploadImageFile(picFile);
15             }
16             
17         }
18     }

 按照随机身份证格式,对图片进行重命名完整类

 1 public class RenamePic {
 2     
 3     /**
 4      * 测试主方法
 5      * @author fgq 2017年7月13日 下午4:48:56
 6      * @param args
 7      */
 8     public static void main(String[] args) {
 9          String path = "F:\\fgq_test";
10          File file = new File(path);
11          long startTime = System.currentTimeMillis();
12          cycleDealFile(file);
13          System.out.println(System.currentTimeMillis() - startTime);
14     
15     }
16     
17     /**
18      * 循环处理文件
19      * @author fgq 2017年7月13日 下午4:48:35
20      * @param file
21      */
22     private static void cycleDealFile(File file) {
23         File[] imageList = file.listFiles();        
24         // 循环遍历文件
25         for (File fileItem : imageList) {
26             if (fileItem.isFile()) {
27                 renameFile(fileItem);
28             }else if(fileItem.isDirectory()){
29                 cycleDealFile(fileItem);
30             }
31         }
32     }
33     
34     /**
35      * 文件重命名
36      * @author fgq 2017年7月13日 下午4:47:42
37      * @param file
38      */
39     private static void renameFile(File file){
40         String fileName = file.getName();
41         String suffix = fileName.substring(fileName.lastIndexOf("."));
42         String order = new StringBuilder().append(generalId()).append(suffix)
43                 .toString();
44         File renameFile = new File(file.getParentFile() + "\\" + order);
45         file.renameTo(renameFile);
46     }
47     
48     /**
49      * 生成伪身份证
50      * @author fgq 2017年7月13日 下午4:47:14
51      * @return
52      */
53     private static String generalId() {
54         
55         int areaCode = getRandNum(100000, 999999);
56         int yearNum = getRandNum(1600, 2017);
57         
58         int monthNum = getRandNum(1, 12);
59         String monthStr = String.valueOf(monthNum);
60         if (Integer.parseInt(monthStr) < 10) {
61             monthStr = "0" + monthNum;
62         }
63         
64         int dayNum = getRandNum(1, 30);
65         String dayStr = String.valueOf(dayNum);
66         if (Integer.parseInt(dayStr) < 10) {
67             dayStr = "0" + dayNum;
68         }
69         int suffix = getRandNum(1000, 9999);
70         
71         return new StringBuilder().append(areaCode).append(yearNum).append(monthStr).append(dayStr).append(suffix).toString();
72     }
73     
74     /**
75      * 获取范围内的随机数
76      * @author fgq 2017年7月13日 下午4:46:55
77      * @param min
78      * @param max
79      * @return
80      */
81     private static int getRandNum(int min, int max) {
82         int randNum = min + (int)(Math.random() * ((max - min) + 1));
83         return randNum;
84     }    
85 }
View Code

 

posted @ 2017-07-13 13:32  疯狂的蜗牛仔  阅读(559)  评论(0编辑  收藏  举报