ファイルパスを取得する

Avatar
dstn

はじめに

ことなるフォルダに存在するファイルを処理するために、ファイルパスを取得してみたいと思います。

サンプルデータの構成


取得対象としたいのは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ファイルに書き込みましたが、ここを「スクリプト呼び出し」または「外部アプリケーション起動」に変更すると、ことなるフォルダ内に存在するデータの処理を実現することができるようになります。

コメント

ログインしてコメントを残してください。

Powered by Zendesk