---
schema_version: "1"
id: 435bafbcf6a899aa8df89818e9e494ded4e0c09c58af85b8719d75ede23f1784
title: File Connector を使用したファイルのリストの作成
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/file-connector/1.3/file-list.md
canonical_url: https://docs.mulesoft.com/jp/file-connector/1.3/file-list
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 8f15592095815f8c4bfbea7bba29734655b063c590a92c44e96d4f4ddaa89ab6
description: MuleSoft Documentation Site
release: "1.3"
latest: false
---
# File Connector を使用したファイルのリストの作成

`List`​ 操作を使用して、​`directoryPath`​ パラメーターで示されるパスにあるファイルとフォルダーのリストを作成します。​`List`​ 操作は、次の状態のメッセージの配列を返します。

- 各メッセージがそのペイロードでファイルのコンテンツを保持している。
- ファイルの属性セクションにファイルのメタデータ (名前、作成時間、サイズなど) が含まれている。
- 要素がフォルダーの場合、ペイロードが空である。

`List`​ 操作には ​`directoryPath`​ パラメーターが必要です。このパラメーターは、ディレクトリのフルパスを指定しない場合、リストを作成するディレクトリの相対パスを表します。パスは、​`config-ref`​ パラメーターによって参照される設定で定義された作業ディレクトリの値に対して相対的です。設定が参照されていない場合、作業ディレクトリはデフォルトで ​`user.home`​ システムプロパティの値に設定されます。システムプロパティが設定されていない場合、コネクタは初期化に失敗します。

設定の定義の例については、​[「ファイル接続設定」](https://docs.mulesoft.com/jp/file-connector/1.3/#connection_settings)​を参照してください。

ファイル設定を参照することで相対パスを使用する ​`List`​ の例を次に示します。

```xml
<file:list config-ref="File_Config" directoryPath="relativePath" />
```

前述のように、これはメッセージの配列を返します。Anypoint Studio では、DataSense に操作の出力のメタデータが表示されます。

![list output](/mulesoft/current/ja-jp/file-connector/1.3/_images/list-output.png)

<table>
<tbody><tr>
<td class="icon">
<i class="fa icon-important" title="Important"></i>
</td>
<td class="content">
<div class="paragraph">
<p><code>List</code>​ 操作はディレクトリとファイル両方のリストを作成しますが、ファイルの場合、ペイロード内のファイルのコンテンツの遅延ストリームも返されます。これを他の操作で直接コンシュームできます。つまり、ファイルのコンテンツにアクセスするために、​<code>List</code>​ 操作の後に ​<code>Read</code>​ 操作を実行する必要はありません。例については、​<a href="#Read Files Returned by List">「リストで返されるファイルの読み取り」</a>​を参照してください。</p>
</div>
</td>
</tr>
</tbody></table>

## [](#リストで返されるファイルの読み取り)リストで返されるファイルの読み取り

次の例は、​`directoryPath`​ 内のすべてのファイルとフォルダーのリストを ​`foreach`​ ループで作成します。

```xml
<file:list config-ref="File_Config" directoryPath="relativePath" />

<foreach>
    <choice>
        <when expression="#[not attributes.directory]">
            <logger message="Found file #[attributes.path] whose content is: #[payload]" />
        </when>
        <otherwise>
            <flow-ref name="process-directory" />
        </otherwise>
    </choice>
</foreach>
```

`foreach`​ ループは、​`choice`​ コンポーネントで各要素がファイルであるかフォルダーであるかを判断します。 要素がファイルの場合、​[Logger](https://docs.mulesoft.com/mule-runtime/latest/logger-component-reference)​ でそのパスとコンテンツが出力されます。要素がディレクトリの場合、別のフローに送信されて処理されます。

前述のように、​`List`​ 操作はすでに (遅延方法で) ペイロード内のファイルのコンテンツを返しているため、​`foreach`​ ループ内に ​`Read`​ 操作はありません。そのため、ストリームが最後にコンシュームされないときにパフォーマンスやオーバーヘッドを心配する必要はありません。

## [](#サブフォルダー内のファイルとフォルダーのリストの作成)サブフォルダー内のファイルとフォルダーのリストの作成

`directoryPath`​ のサブフォルダー内のファイルまたはフォルダーのリスト (再帰的リストなど) を作成するには、​`recursive`​ パラメーターを ​`true`​ に設定します。

```xml
<file:list config-ref="File_Config" directoryPath="relativePath" recursive="true" />
```

## [](#一致条件でのファイルの絞り込み)一致条件でのファイルの絞り込み

`<file:matcher>`​ 要素を使用して、ファイルの受け入れまたは却下で使用する一致条件に基づいて、ファイルを絞り込むことができます。使用できるファイル一致ルールの例を次に示します。

例: ファイルマッチャー

```xml
<file:matcher
  filenamePattern="a?*.{htm,html,pdf}"
  path-pattern="a?*.{htm,html,pdf}"
  createdSince="2019-06-03T13:21:58+00:00"
  createdUntil="2019-07-03T13:21:58+00:00"
  updatedSince="2019-05-03T13:21:58+00:00"
  updatedUntil="2019-06-03T13:21:58+00:00"
  accessedSince="2019-06-03T13:21:58+00:00"
  accessedUntil="2019-06-03T13:21:58+00:00"
  directory="true|false"
  regularFile="true|false"
  symbolicLink="true|false"
  minSize="0"
  maxSize="1024" />
```

上記のすべての属性は省略可能であり、提供されていない場合は無視されます。これらはすべて ​`AND`​ 操作の下で相互に関連します。

### [](#最上位の再利用可能なマッチャー)最上位の再利用可能なマッチャー

ファイルマッチャーは、次の例に示すように再利用可能な要素 (名前付きの最上位要素) にすることができます。

次に例を示します。

```xml
<file:matcher name="smallFileMatcher" maxSize="100" />

<flow name="smallFiles">
  <file:list path="~/smallfiles" matcher="smallFileMatcher" />
  ...
</flow>
```

### [](#内部要素再利用できないマッチャー)内部要素、再利用できないマッチャー

マッチャーは、次の例に示すように特定のコンポーネント専用の (再利用できない) 内部要素にすることができます。

```xml
<flow name="smallFiles">
	<file:list path="~/smallfiles">
        <file:matcher maxSize="100" />
	</file:list>
	...
</flow>
```

## [](#time-between-size-checks-サイズ確認の時間間隔-パラメーター)Time Between Size Checks (サイズ確認の時間間隔) パラメーター

`List`​ 操作で返されるファイルのコンテンツを読み取り、ファイルがまだ書き込み中であるか不明な場合は、​`TimeBetweenSizeChecks`​ パラメーターを使用できます。このパラメーターは、​`TimeBetweenSizeCheckUnit`​ パラメーターと連携します。この 2 つのパラメーターの組み合わせで、2 つのサイズ確認が実行されます。

- 1 つは、ストリームがコンシュームされるポイントにフローが到達したとき。​`List`​ はファイルのコンテンツを参照する遅延ストリームを返すため、​`List`​ 操作では時間の確認は行われません。そのため、ストリームがコンシュームされるときにのみサイズ確認を行うことが理にかなっています。
- もう 1 つの確認は、​`TimeBetweenSizeChecks`​ および ​`TimeBetweenSizeCheckUnit`​ パラメーターで設定された待機時間後に実行。

この両方のサイズ確認で同じファイルサイズが返された場合、ストリームは正常にコンシュームされています。2 つのサイズ確認で異なるファイルサイズが返された場合、ファイルはまだ書き込み中であるため、ストリームはコンシュームされず、操作はエラーで失敗します。

## [](#反復可能ストリーム)反復可能ストリーム

**List**​ 操作では、Mule 4 で導入された反復可能ストリーム機能が使用されます。この操作ではメッセージのリストが返されます。各メッセージはリスト内のファイルを表し、ファイルへのストリームを保持します。デフォルトでは、ストリームは反復可能です。

詳細は、​[「Mule 4 でのストリーミング」](https://docs.mulesoft.com/mule-runtime/latest/streaming-about)​を参照してください。

## [](#関連情報)関連情報

[File Connector リファレンス](https://docs.mulesoft.com/jp/file-connector/1.3/file-documentation)​ ​[foreach ループ](https://docs.mulesoft.com/mule-runtime/latest/for-each-scope-concept)​ ​[Choice コンポーネント](https://docs.mulesoft.com/mule-runtime/latest/choice-router-concept)