相关代码:
import java.io.File;
import com.drew.imaging.ImageMetadataReader;
import com.drew.metadata.Directory;
import com.drew.metadata.Metadata;
import com.drew.metadata.exif.ExifSubIFDDirectory;
public class TestFileTwo {
public static void main(String[] args) throws Exception{
changeFile(new File("E:\\test"));
}
static void changeFile(File file) throws Exception {
if (file.isFile()) {
Metadata metadata = ImageMetadataReader.readMetadata(file);
for (Directory directory : metadata.getDirectories()) {
if("ExifSubIFDDirectory".equalsIgnoreCase( directory.getClass().getSimpleName() )){
String time1 = directory.getString(ExifSubIFDDirectory.TAG_DATETIME_ORIGINAL);
String time2 = time1.replace( ':','-' );
String rootPath = file.getParent();
String filename = file.getName();
String substring = "";
if ((filename != null) && (filename.length() > 0)) {
int dot = filename.lastIndexOf('.');
if ((dot >-1) && (dot < (filename.length() - 1))) {
substring = filename.substring(dot + 1);
}
}
File newFile = new File(rootPath + File.separator + time2 + "." + substring);
file.renameTo(newFile);
}
}
}
else {
File[] files = file.listFiles();
for (File filealone : files)
changeFile(filealone);
}
}
} 主要参考:
http://blog.youkuaiyun.com/wang_zhenwei/article/details/71172975
http://blog.youkuaiyun.com/wang_zhenwei/article/details/60968265

这篇博客分享了如何使用metadata-extractor库来读取图片的拍摄时间,并据此修改图片文件名。提供了详细的代码实现链接。
383

被折叠的 条评论
为什么被折叠?



