【InDesign】選択したフォルダを取得/ファイル一覧を取得/ファイル名を取得 | Blue-Scre{7}n.net | よそいちのDTPメモ

トップページ » InDesign » 【InDesign】選択したフォルダを取得/ファイル一覧を取得/ファイル名を取得

【InDesign】選択したフォルダを取得/ファイル一覧を取得/ファイル名を取得

公開日:2017年9月26日 

 「選択したフォルダ内のinddファイルを~」といった処理をスクリプトでしたいときに必要な、フォルダ名やファイル名を取得するためのスクリプトのまとめです。書き残してないと忘れてしまうので…

 結果が復号されずに表示されて読みづらいため、どのコードもdecodeURI()が入っています。これ無しでalert(fldObj)のように書いても動きます。

1.フォルダ名を取得

var fldObj=Folder.selectDialog("フォルダを選択してください。");
alert(decodeURI(fldObj))

 スクリプトを実行すると、フォルダ選択用のダイアログが表示され、そこで選択したフォルダ名がファイルパス含めて取得できます。

選択したフォルダ名をファイルパス含めて取得title=”選択したフォルダ名をファイルパス含めて取得”/>

2.フォルダ名を取得(現在のドキュメント位置を基準にダイアログを開く)

var DocPathdec = decodeURI(app.activeDocument.filePath); //現在のinddファイルの場所を取得
var fldObj=Folder.selectDialog("フォルダを選択してください。",DocPathdec);
alert(decodeURI(fldObj))

 「1.」と同様ですが、現在開いているinddファイルの階層を基準にダイアログが表示されます。リンクフォルダなど、今操作しているinddファイルに近い場所のフォルダを取得したいときに使います。

3.ファイルパスも含めて選択したフォルダ内のファイル名を取得

var fldObj=Folder.selectDialog("フォルダを選択してください。");
    var fileList = fldObj.getFiles();//フォルダ内のファイル名を取得
alert(decodeURI(fileList))

4.選択したフォルダ内のファイル名のみ取得

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)を入れると、一覧が完成していく様子を見ることができます(ただしファイル数が多いと延々アラートを見せられるので要注意)。


タグ:


広告