最近在整理存放在电脑中的生活照片,很多照片的文件名中没有时间,很难看出是什么时候拍的,其实照片是可以查到拍摄时间的,如下图:
于是想手动修改文件名加上时间信息,苦于文件太多,费时费力,于是写了一个JAVA小程序,先使用ImageMetadataReader解析出照片信息中的时间信息,然后通过File的renameTo方法将文件重命名为带时间戳的文件名,几秒钟整理完了电脑中几万张照片,大大提升了工作效率,具体代码如下:
public static void main(String[] args) throws IOException, ImageProcessingException {
File f = new File("F:\\photo\\hwp10plus\\20201203\\sel");
File[] fs = f.listFiles();
for (int i = 0; i < fs.length; i++) {
String fileName = fs[i].getName();
Date dt = null;
dt = null;
Metadata metadata = ImageMetadataReader.readMetadata(fs[i]);
ExifSubIFDDirectory directory = metadata.getFirstDirectoryOfType(ExifSubIFDDirectory.class);
if (directory != null) {
dt = directory.getDate(ExifSubIFDDirectory.TAG_DATETIME_ORIGINAL);
}
if (dt == null) {
System.out.println(fileName + " no date ========");
continue;
}
dt = new Date(dt.getTime() - (1000*60*60*8));
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
String yyyymmdd = sdf.format(dt);
fileName = yyyymmdd + "-" + fileName;
fs[i].renameTo(new File("F:\\photo\\hwp10plus\\20201203\\sel\\" + fileName));
}
}
下载链接:点击下载代码