クリエイター手抜きプロジェクト[253]Illustrator CS/CS2/CS3/CS4/CS5編 サブフォルダ内にある全てのAIファイルを開く/古籏一浩

投稿:  著者:  読了時間:4分(本文:約1,900文字)


今回のスクリプトは、サブフォルダ内にある全ての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でも何でも対応できます。


【古籏一浩】openspc@po.shiojiri.ne.jp
< http://www.openspc2.org/ >

CSS3+JavaScriptで勉強中。ブラウザごとプロパティ指定しないと動かないので、1行で済むはずが3行とか5行にもなってしまいます......。本来必要ないコードばかり増えてイマイチよろしくありません。プロパティ名だけ違うなら関数ひとつ書けばいいけど、指定する値も違ったりして面倒です。エントロピー増大の法則......

・プロならば知っておくべきWebコーディング&デザインの定石100
【10/26発売】
< http://www.amazon.co.jp/dp/4844361538/ >

・Google API Expertが解説するHTML5ガイドブック【発売中】
< http://www.amazon.co.jp/dp/4844329278 >

・逆引きGoogle Maps APIリファレンス ver 3
< http://www.openspc2.org/reibun/Google/Maps/API/ver3/ >

・フリー実写3D映像素材
< http://118.22.25.23/HDTV/footage/HD/3D/ >

・ハイビジョン映像素材集
< http://www.openspc2.org/HDTV/ >

・Adobe Illustrator CS3 + JavaScript 自動化サンプル集 発売中
< http://www.openspc2.org/book/PDF/Adobe_Illustrator_CS3_JavaScript_Book/ >

毎度おなじみASCII.jpの連載もよろしく
・サーバー不要で保存できる「Web Storage」の使い方
< http://ascii.jp/elem/000/000/557/557064/ >