50,531
社区成员
发帖
与我相关
我的任务
分享
import com.drew.metadata.*;
import com.drew.metadata.exif.*;
import com.drew.imaging.jpeg.JpegProcessingException;
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
public class RenamePicFileWithDate {
public static void main(String args[]) throws FileNotFoundException {
String[] form = { "JPG", "jpg", "JEPG", "jpg", "GIF", "gif" };
File f = new File("E://wangyujin");// 此处文件夹里有一些照片
if (f.exists()) // 如果文件存在
{
File[] files = f.listFiles();// 遍历文件
int p = files.length;
if (p > 0){// 如果文件里有文件
for (File oldFile : files){// 读取所有文件
String oldName = oldFile.getName();// 得到原文件名
try {
// 得到文件拍摄时间
ExifReader er = new ExifReader(oldFile);
Metadata exif = er.extract();
Iterator itr = exif.getDirectoryIterator();
Date datetime = null;
while (itr.hasNext()&&(datetime==null)) {
Directory directory = (Directory) itr.next();
try {
datetime = directory.getDate(ExifDirectory.TAG_DATETIME_ORIGINAL);
} catch (MetadataException e) {
e.printStackTrace();
}
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy_MM_dd-HH");
String ext = oldName.substring(oldName.lastIndexOf('.'));
File newFile = new File(f + "/" + sdf.format(datetime) + ext);
int i = 0;
while (newFile.exists()){
i++;
newFile = new File(f + "/" + sdf.format(datetime) + "_" + i + ext);
}//保证同一个时间段拍摄的照片的文件名不重复
oldFile.renameTo(newFile);// 用得到的拍摄时间重新命名文件,保持扩展名不变
} catch (JpegProcessingException e) {
System.err.println("此文件不是照片文件");
}
}
} else
System.out.println("目录中没有文件");
} else
System.out.println("目录不存在");
}
}
import com.drew.metadata.*;
import com.drew.metadata.exif.*;
import com.drew.imaging.jpeg.JpegMetadataReader;
import com.drew.imaging.jpeg.JpegProcessingException;
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
public class RenamePicFileWithDate {
public static void main(String args[]) throws FileNotFoundException {
String[] form = { "JPG", "jpg", "JEPG", "jpg", "GIF", "gif" };
File f = new File(".");// 此处文件夹里有一些照片
if (f.exists()) // 如果文件存在
{
File[] files = f.listFiles();// 遍历文件
int p = files.length;
if (p > 0){// 如果文件里有文件
for (File fileFrom : files){// 读取所有文件
String fromFile = fileFrom.getName();// 得到原文件名
try {
// 得到文件拍摄时间
ExifReader er = new ExifReader(fileFrom);
Metadata exif = er.extract();
Iterator itr = exif.getDirectoryIterator();
Date datetime = null;
while (itr.hasNext()&&(datetime==null)) {
Directory directory = (Directory) itr.next();
try {
datetime = directory.getDate(ExifDirectory.TAG_DATETIME_ORIGINAL);
} catch (MetadataException e) {
e.printStackTrace();
}
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy_MM_dd-HH");
String ext = fileFrom.getName().substring(fileFrom.getName().lastIndexOf('.'));
File newFile = new File(sdf.format(datetime) + ext);
int i = 0;
while (newFile.exists()){
i++;
newFile = new File(sdf.format(datetime) + "_" + i + ext);
}//保证同一个时间段拍摄的照片的文件名不重复
fileFrom.renameTo(newFile);// 用得到的拍摄时间重新命名文件,保持扩展名不变
} catch (JpegProcessingException e) {
System.err.println("not photo");
}
}
} else
System.out.println("there is no photos in this file");
} else
System.out.println("there is no file in this file");
}
}
File a = new File("aa"+ext);
System.out.println(a.getName());
fileFrom.renameTo(a);
可以打印出它的名字可就是不改啊···
for (File fileFrom : files)// 读取所有文件
{
String fromFile = fileFrom.getName();// 得到原文件名
try {
// 得到文件拍摄时间
ExifReader er = new ExifReader(fileFrom);
Metadata exif = er.extract();
Iterator itr = exif.getDirectoryIterator();
Date datetime = null;
while (itr.hasNext()&&(datetime==null)) {
Directory directory = (Directory) itr.next();
try {
datetime = directory.getDate(ExifDirectory.TAG_DATETIME_ORIGINAL);
} catch (MetadataException e) {
e.printStackTrace();
}
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String ext = fileFrom.getName().substring(fileFrom.getName().lastIndexOf('.'));
fileFrom.renameTo(new File(sdf.format(datetime) + ext));// 用得到的拍摄时间重新命名文件,保持原文件扩展名不变
} catch (JpegProcessingException e) {
System.err.println("not photo");
}
}