Power Automate 「フォルダー内のファイルのリスト(OneDrive For Business)」アクション

2020年8月31日

「フォルダー内のファイルのリスト(OneDrive」はOneDriveの任意のフォルダに

保存されているファイル(フォルダーも含まれる)の一覧を取得するアクションです。

この記事では、その使い方を紹介します。

前提条件

「Microsoft 365 Business」の「Standard」か「Premium」の契約が必要です。

利用方法

フローにステップを追加する際に「OneDrive For Business」コネクタを選択します。

「Office 365 Outlook」コネクタ

「アクション」より「フォルダー内のファイルのリスト」を選択します。

OneDrive For Businessの「フォルダー内のファイルのリスト」を追加

「フォルダー内のファイルのリスト」ステップが追加されるので対象のフォルダを設定します。

ここはフォルダーのピッカーで指定します。

ピッカーで指定した場合はフォルダパスに見えますが、表示だけで中身はIDです。

指定フォルダを削除してから、同名フォルダを作成しても別として扱われてしまいます。

(フォルダが存在しないエラーとなるので、フロー上で再指定が必要)

対象のフォルダを指定

次に新しいステップに「コントロール」コネクタを指定します。

「コントロール」コネクタを指定

そして「Apply to each」アクションを指定します。

「Apply to each」アクションを指定

「以前の手順から出力を選択」に動的なコンテンツの「value」を指定します。

これにより「Apply to each」の中に指定したアクションが

フォルダ内に格納されているファイルとディレクトリの全ての分だけ繰り返されます。

(繰り返されるたびに異なるファイルを対象とする)

「以前の手順から出力を選択」に動的なコンテンツの「value」を指定

動的なコンテンツ

繰り返しの対象のファイルに対して使用する代表的な項目は以下の通りです。

取得できるのは付加情報のみです。

項目変数の種類内容
ID文字列ファイル識別子。
名前文字列ファイル名
パス文字列ファイルのフルパス。
そのままでは使いづらいので文字列操作が必要な場合が多いです。
メディアの種類文字列ファイルのMINEタイプ
最終更新者文字列最終更新者のユーザ名
最終更新時刻文字列日時最終更新日時
サイズ整数ファイルのバイト数
OneDrive For Businessファイルのメタデータ一覧

取得できるのは付加情報のみです。

ファイルの内容であるファイルコンテンツが必要な場合はIdを利用して

ファイルコンテンツの取得」アクションで取得します。

ファイルの内容であるファイルコンテンツを取得する場合は以下を利用します。

アクション・トリガー種類動的なコンテンツ
新しいメールが届いたとき(Offce365 Outlook)トリガー添付ファイル コンテンツ
新しいメールが届いたとき(Gmail)トリガー添付ファイル コンテンツ
ファイルが作成されたとき(OneDrive For Business)トリガーファイル コンテンツ
ファイルが変更されたとき(OneDrive For Busiess)トリガーファイル コンテンツ
ファイル コンテンツの取得(OneDrive For Business)アクションファイル コンテンツ
パスによるファイル メタデータの取得(OneDrive For Business)アクションファイル コンテンツ
ファイルの変換(OneDrive For Business)アクションファイル コンテンツ
IDによるファイルコンテンツの取得アクションファイル コンテンツ
パスによるファイルコンテンツの取得アクションファイル コンテンツ
ファイルコンテンツを取得する方法一覧

OneDriveやGoogleDriveなどサービスを跨いでも

ダウンロード可能なファイルであれば共通して利用可能です。

利用例:フォルダーの中のファイルを全て削除

例えばフォルダー内のファイルを全て削除する場合、このようにします。

なおフォルダーを削除するアクションがないため、削除できるのはファイルのみです。

それにはまず「Apply to each」の中で「コントロール」より「条件」を選択します。

「コントロール」より「条件」を追加

次に「条件」の左側に動的なコンテンツの「フォルダーですか?」、右側に「true」を指定します。

そして「いいえの場合」の中に「ファイルの削除」アクションを追加し、

ファイルに動的なコンテンツの「ID」を指定します。

条件とファイルの削除アクションの指定

これによりフォルダの中身を全て削除するフローになります。

更に下位の階層は対象外のため、それも想定する場合は「はいの場合」に

更に「フォルダー内のファイルのリスト」を想定する階層分、追加する必要があります。

利用例:フォルダの内容をメール送信

フォルダの内容を列挙してメールで送信するフローを紹介します。

(メールでなくファイル保存などでも応用可能です)

それにはまずトリガーの直後に「変数」コネクタを選択します。

トリガーの直後に「変数」コネクタ

「変数を初期化する」アクションを選択します。

「変数を初期化する」アクションを選択

「名前」に任意の変数名、「種類」に文字列を指定します。

「名前」に任意の変数名、「種類」に文字列を指定

Apply to each」の中で「変数」より「文字列変数に追加」アクションを追加します

「Apply to each」の中で「変数」より「文字列変数に追加」アクションを追加

名前に先ほど初期化した任意の変数名を指定し、

値にファイルの情報の動的コンテンツを指定します。

そのまま繋げると読みづらいので記号などで整形します。

改行を変数化していますが、値の中で改行しても有効です)

名前に先ほど初期化した任意の変数名を指定し、値にファイルの情報の動的コンテンツを指定

これをOutlookGmailの本文に指定すればファイルの情報一覧が送信されます。

OutlookやGmalの本文に指定すればファイルの情報一覧が送信
メールの送信結果
メールの送信結果

変数をメール本文でなくファイルコンテンツに指定すれば、

テキストファイル保存という形で応用可能です。

(改行する場合、改行コードや改行タグに気を付ける必要があります)

関連記事

Power Automate 「OneDrive For Business」の記事一覧

Power Automate アクションの使い方の記事一覧