一、前言
有的時候我們需要對某個文件夾下面的文件按一定的規則來進行重命名,如果使用手動的方式,不僅浪費時間,而且還很累。作爲一個程序員,能用代碼解決的事情,就儘量用代碼來搞定不是。下面我們就來使用代碼來給指定的文件夾下面的所有文件進行重命名。代碼很簡單,一個類就搞定了,2個方法搞定。可以看下效果。
二、效果圖展示
未修改前:
修改後:
三、代碼
package cn.keking.utils;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
public class TestGetFiles {
/**
* 獲取一個文件夾下的所有文件全路徑
* @param path 文件夾路徑
* @param listFileName 存儲文件名
*
*/
public static void getAllFileName(String path, ArrayList<String> listFileName) {
File file = new File(path);
File[] files = file.listFiles();
String[] names = file.list();
if (names != null) {
String[] completNames = new String[names.length];
for (int i = 0; i < names.length; i++) {
completNames[i] = path + names[i];
}
listFileName.addAll(Arrays.asList(completNames));
}
for (File a : files) {
//如果文件夾下有子文件夾,獲取子文件夾下的所有文件全路徑。
if (a.isDirectory()) {
getAllFileName(a.getAbsolutePath() + "\\", listFileName);
}
}
}
/**
* 重命名文件
* @param filePath 重命名後文件的目標目錄
* @param fileName 重命名前的完整文件路徑
* @return
*/
public static void renameFile(String filePath, String fileName) {
SimpleDateFormat fmdate = new SimpleDateFormat("yyyyMMddHHmmssSSS");
String oldFileName = fileName;
File oldFile = new File(oldFileName);
String newFileName = filePath+File.separator+fmdate.format(new Date())+"."+fileName.split("\\.")[1];
File newFile = new File(newFileName);
if (oldFile.exists() && oldFile.isFile()) {
oldFile.renameTo(newFile);
}
}
public static void main(String[] args) {
ArrayList<String> listFileName = new ArrayList<String>();
getAllFileName("C:/Users/Wangchenchen/Desktop/test/", listFileName);
for (String name : listFileName) {
System.out.println(name);
renameFile("C:/Users/Wangchenchen/Desktop/test/", name);
}
}
}
博主碼字不易,如果你角色本文對你有幫助,幫個小忙,點個贊可好^_^