はじめに
ことなるフォルダに存在するファイルを処理するために、ファイルパスを取得してみたいと思います。
サンプルデータの構成
取得対象としたいのはfolder_01~03配下に存在する「*.json」ファイルとし、フォルダ内に存在するフォルダは対象外とします。
完成イメージ
(1)で親フォルダの中に含まれているフォルダの一覧を取得し、(2)ではフォルダ内に含まれているファイル名を取得し最終的にファイルパス名にしたものをこのサンプルスクリプトではCSVファイルに出力しています。
フォルダの判断
foreachの分割パスに「/filelist/file」を設定したら、mappingで「name」と「type」を取得します。
条件分岐コンポーネントを利用して「type」が「directory」であるかどうかの比較を行います。ファイル名一覧取得コンポーネントで取得可能なtype属性は「file:ファイル」と「directory:ディレクトリ」です。
ファイルパスの生成
今度はファイル名を取得したいので「type」が「file」であるかの比較を行い、ファイルの場合のみファイルパスを生成します。
前の処理で取得していた「directory_name」に「/」を追加し「name」をつなげると、ファイルパスとなりますので、今回はカラムデータとして渡しています。
出力結果
出力した結果は以下の通りで、指定フォルダ直下になるtest.txt、folder_01、02、03内にあるtest_01、test_02、test_03といったものは読み取らず、必要なものだけが出力されていることがわかります。
filepath folder_01/mock_data_01_01.json folder_01/mock_data_01_02.json folder_01/mock_data_01_03.json folder_01/mock_data_01_04.json folder_01/mock_data_01_05.json folder_02/mock_data_02_01.json folder_02/mock_data_02_02.json folder_02/mock_data_02_03.json folder_02/mock_data_02_04.json folder_02/mock_data_02_05.json folder_03/mock_data_03_01.json folder_03/mock_data_03_02.json folder_03/mock_data_03_03.json folder_03/mock_data_03_04.json folder_03/mock_data_03_05.json
最後に
今回はサンプルなのでcsvファイルに書き込みましたが、ここを「スクリプト呼び出し」または「外部アプリケーション起動」に変更すると、ことなるフォルダ内に存在するデータの処理を実現することができるようになります。