1.需求背景
照片太多太乱,想把名字都改成照片时间
2.代码
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Calendar;
/**
* 根据修改日期重命名文件夹下所有文件
*/
public class FileChange {
public static void main(String[] args) {
String directoryPath = "D:" + File.separator;
//文件夹
File directoryFile = new File(directoryPath + "test");
if (directoryFile.isDirectory()) {
File[] files = directoryFile.listFiles();
for (File file : files) {
//获取时间
long modifyTime = file.lastModified();
System.out.println(modifyTime);
String trueTime = formatModifyTime(modifyTime);
//后缀
String name = file.getName();
String suffix = name.substring(name.lastIndexOf("."));
//重命名
File newName = new File(directoryFile.getAbsolutePath() + File.separator + trueTime + suffix);
if (!file.renameTo(newName)) {
System.out.println(file.getName() + "修改失败 有相同时间的文件");
}
}
}
}
private static String formatModifyTime(long modifyTime) {
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(modifyTime);
String pattern = "yyyy-MM-dd HHmmssSSS";
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
return sdf.format(calendar.getTime());
}
}
需要注意 windows文件名的非法字符