Docly Child

フォルダ/ディレクトリ内のファイル一覧を取得する

3066 views

この記事では、外部ストレージに存在する特定フォルダ(ディレクトリ)内部のファイルを、リスト形式で取得する方法を紹介します。

【できるようになること】
・フォルダ(ディレクトリ)内のファイル/フォルダ一覧を取得
・セッション内部の一時ファイルと、テキストとしてのファイルパスの違いを理解

ファイル一覧を利用する場面

特定フォルダ内部のファイル全てに、以下のような何らかの処理を適用したい場合に便利です。
例:アップロードしたい, CSVとして取得して中身を読み込みたい

 ListItems

ListItemsアクションを使用すると、外部ストレージ中の特定フォルダの中にあるファイル/フォルダのパスやIDを、リスト(配列)で取得することが可能です。
ファイル型アウトプットのリストが取得されるわけではありません(後述)

 ワークフローの設定例

ListItemsで取得される情報は、デフォルトでは「連携先ストレージ中の特定フォルダ内におけるファイル/フォルダのパスのテキスト」となっているため、そのままの状態ではファイル型アウトプット(AUTOROのセッション内における一時ファイルのパスのテキスト)として扱うことはできません。

ListItemsのアウトプットをファイル型として利用するためには、GetFileアクションを使用し、「ListItemsで取得したパスを利用してファイル本体を取得する」必要があります。

以下に、その方法を記述します。

  • ListItemsを設定します
  • プロバイダIDに、任意の連携先ストレージを指定します。
  • ディレクトリ(フォルダ)に、任意のフォルダを指定します。 ※右のフォルダアイコン(ピッカー)から選択可能です。変数やディレクトリ/フォルダIDによる指定も可能です。
  • ForEach(格要素を繰り返す)を設定します。
  • 繰り返すリストに、ListItemsのアウトプットを指定します。
  • 要素を格納する変数名に、任意の変数名を指定します。
  • GetFileを設定します。
  • プロバイダIDに、ListItemsに指定したものと同じプロバイダIDを指定します。
  • ファイルパスには、ForEachで指定した要素を格納する変数名を以下のように指定します。
    ${変数名}
  • これにより、GetFileのアウトプットは、繰り返し内部の各アクションでファイル型として使用可能になります。

ListItemsのアウトプットにフォルダパスが含まれる場合、上述のワークフローはエラーになります。

この場合は、以下のように「フォルダを除外」することによってエラーを回避できます。

  • ListItemsの直下に、SearchItemFromListを設定します。
  • 検索クエリに以下を指定します。
    .*
  • ForEachの繰り返すリストを、SearchItemFromListのアウトプットにします。

 

※フォルダの名前にドット.が含まれる場合は、フォルダの名前から.を削除する必要があります

# アイテム一覧を取得
+list_items_1:
  action>: ListItems
  provider: ''
  directory: ''
  limit: 1000
  meta:
    display:

# 各要素について繰り返す
+for_each_1:
  for_each>:
    filePath: +list_items_1
  _do:

    # ファイルを取得
    +get_file_1:
      action>: GetFile
      provider: ''
      filename: ${filePath}
      meta:
        display:

 ファイルのパスとIDを両方取得する

2023年11月から、以下の外部ストレージではListItemsアクションでファイルIDを出力することができるようになりました。

  • GoogleDrive

アクションの詳細設定から「ファイルIDを含める(includeFileId)」をONにすると、ファイルパスとファイルIDの両方を出力できます。
ファイルIDを使用することでより厳密なファイル操作ができるようになるため、上述の外部ストレージではこの設定をONにすることを推奨いたします。

なお、上述のForEach(各要素を繰り返す)でファイルを1つずつ取得する際にファイルIDを使用する場合の記法は、以下となります。

${要素を格納する変数名.id}

参考:オブジェクト/JSON

<ListItems>フォルダ内のファイル/ファイル一覧/ファイルリスト

このページは役に立ちましたか?