Illustrator CS/CS2/CS3/CS4/CS5編 サブフォルダ内にある全てのAIファイルを開く

今回のスクリプトはサブフォルダ内にある全てのAIファイルを開くものです。MacOS XにはSpotlight(ファイル検索機能)があるので、あまり必要ないかもしれません。手作業でなく自動的に処理する場合には便利だと思います。
サブフォルダがある場合は再帰を使ってAIファイルを取得しないといけません。以下のスクリプトを実行するとフォルダを選択するダイアログが表示されます。すると選択したフォルダと、そのサブフォルダ内にあるAIファイルが全て開かれます。


rootFolderObj = Folder.selectDialog("フォルダを選択してください");
fList = getAllFile(rootFolderObj, [".ai"]); // 拡張子は小文字で
alert(fList);
for(var i=0; i<fList.length; i++){
app.open(fList[i]);
}
// サブフォルダも含めたファイル一覧を取得する関数
function getAllFile(folderObj, ext){
if (!folderObj) return; // キャンセルされたら処理しない
var list = [];
getFolder(folderObj);
return list;
// フォルダ内の一覧を取得
function getFolder(folderObj){
var fileList = folderObj.getFiles();
for (var i=0; i<fileList.length; i++){
if (fileList[i].getFiles) {
getFolder(fileList[i]); // サブフォルダがある限り繰り返す
}else{
var f = fileList[i].name.toLowerCase();
for(var j=0; j<ext.length; j++){
if (f.indexOf(ext[j]) > -1) { list.push(fileList[i]); }
}
}
}
}
}

AIファイルでなくEPSファイルにしたい場合は以下のように変更します。

fList = getAllFile(rootFolderObj, [".ai"]);
  ↓
fList = getAllFile(rootFolderObj, [".eps"]);

AIファイルとEPSの両方を開きたい場合は以下のように変更します。

fList = getAllFile(rootFolderObj, [".ai"]);
  ↓
fList = getAllFile(rootFolderObj, [".ai", ".eps"]);

開きたいファイルの拡張子を追加していけばpdfでも何でも対応することができます。


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