EXIF情報の日付に従ってJPEG画像をリネームする (Photoshop CS2/CS3)

ディスクがクラッシュした際、ファイルをサルベージ(復旧作業)したとしても、運悪く意味不明なファイル名になってしまったり、ソートして整理しようにも更新日時や修正日などが復旧した日になってしまいます。これで、写真が4万枚もあったら整理する気も失せてしまいます。
そんな時には少しでも整理しやすくするスクリプトがあると便利です。デジカメで撮影されたJPEG画像の場合はEXIF情報が入っています。このEXIF情報から撮影日時を読み出してファイル名にすれば多少ファイルの整理が楽になるはずです。
EXIF情報を読み出すためPhotoshop CS2またはCS3でしか動作しません。また、EXIF情報がないJPEGを開いた場合には名前は変更されず、そのままになります。

folderName = Folder.selectDialog("JPEG画像があるフォルダを選択してください");
if (folderName)
{
fileList = folderName.getFiles("*.jpg");
for (i=0; i<fileList.length; i++)
{
try {
docRef = open(fileList[i]);
exifData = docRef.info.exif;
for (j=0; j<exifData.length; j++){
tmp = new String(exifData[j]); // Exifデータ読み込み
tmp = tmp.split(":");
if (tmp.length > 4) {
str = new String(exifData[j]);
break;
}
}
str = str.split(",")[1];
str = str.replace(/ /g,"_");
str = str.replace(/:/g,"_");
str = str.substr(1,999) + ".jpg";
activeDocument.close(SaveOptions.DONOTSAVECHANGES);
fileList[i].rename(str);
}catch(e){ }
}
}

元のファイル名を残して、その後に撮影日時を付けることもできます。この場合は

str = str.substr(1,999) + ".jpg";



str = fileList[i].name+"_"+str.substr(1,999) + ".jpg";

に変更してください(元のファイル名には拡張子も含まれて連結されます)。


[サンプルをダウンロード]