Photoshop Extensionの開発27 フォルダー内のファイルをJSXから取得する
今回はjsx側からファイルを再帰的に取得したいと思います。基本的なやり方はパネル側と変わりませんが仕様がいろいろ違ってややこしいとは思います。
まずパネル側がecma2015だったのに対してこちらはecma3なので大分古臭く見えると思います。(wwww
まずウインドウダイアログですがjsxですとFolder.selectDialogで呼び出して変数に選択したフォルダーのパスを代入できます。
この後にこのパスを元にファイルリストを取得してゆきます。ファイル取得関数はjsxですとフォルダーオブジェクトに専用のgetFilesメソッドが用意されているのでフォルダーパスを元にgetFilesメソッドでファイルリストを取得します。
問題がフォルダーの判別の仕方ですが調べた限りjsx側に専用のフォルダー識別メソッドが無いので(もしあったらごめんなさい)取得したファイルに対してgetFilesメソッドがあるかどうか確かめます。
ファイルオブジェクトはgetFilesメソッドが無いのでundefined、を返します。フォルダーオブジェクトはメソッド自身を返すのでundefinedを返さなければフォルダーという事でgetFilesFromPath関数自身を再帰的に呼び出します。undefinedを返した場合はファイルオブジェクトという事で配列に追加してゆきます。