公開日:2017年9月26日
「選択したフォルダ内のinddファイルを~」といった処理をスクリプトでしたいときに必要な、フォルダ名やファイル名を取得するためのスクリプトのまとめです。書き残してないと忘れてしまうので…
結果が復号されずに表示されて読みづらいため、どのコードもdecodeURI()
が入っています。これ無しでalert(fldObj)
のように書いても動きます。
var fldObj=Folder.selectDialog("フォルダを選択してください。");
alert(decodeURI(fldObj))
スクリプトを実行すると、フォルダ選択用のダイアログが表示され、そこで選択したフォルダ名がファイルパス含めて取得できます。
title=”選択したフォルダ名をファイルパス含めて取得”/>
var DocPathdec = decodeURI(app.activeDocument.filePath); //現在のinddファイルの場所を取得
var fldObj=Folder.selectDialog("フォルダを選択してください。",DocPathdec);
alert(decodeURI(fldObj))
「1.」と同様ですが、現在開いているinddファイルの階層を基準にダイアログが表示されます。リンクフォルダなど、今操作しているinddファイルに近い場所のフォルダを取得したいときに使います。
var fldObj=Folder.selectDialog("フォルダを選択してください。");
var fileList = fldObj.getFiles();//フォルダ内のファイル名を取得
alert(decodeURI(fileList))
var fldObj=Folder.selectDialog("フォルダを選択してください。");
var fileList = fldObj.getFiles();
var flName=new Array();
for(var i=0; i < fileList.length; i++){
flName.push(decodeURI(fileList[i].name))
}
alert(flName)
選択したフォルダ内のファイル名のみを取得します。ファイル名のみを取り出す.name
は配列のうちの1つにしか対象にできないので、var flName=new Array();
で新しい配列を作成し、for以下のflName.push(decodeURI(fileList[i].name))
でファイル名をひとつずつ取得し、flNameに格納しています。
title="選択したフォルダ内のファイル名のみを取得"/>
for文の中にalert(flName)
を入れると、一覧が完成していく様子を見ることができます(ただしファイル数が多いと延々アラートを見せられるので要注意)。