---
schema_version: "1"
id: abcb73b03bf4c04ba77b2c2521157c571a040e1cdf26c5c6c1c7c88c879d018e
title: FTP Connector を使用したファイルのリストの例
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/ftp-connector/1.5/ftp-list.md
canonical_url: https://docs.mulesoft.com/jp/ftp-connector/1.5/ftp-list
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 09ab72fa68b586f71282ee4eb0954db2afeca476872a114a38e36495a003426c
description: MuleSoft Documentation Site
release: "1.5"
latest: false
---
# FTP Connector を使用したファイルのリストの例

FTP 用 Anypoint Connector (FTP Connector) の ​**List**​ 操作では、ディレクトリパス内のファイルまたはフォルダーを表すメッセージのリストを返します。

- **\[Directory path (ディレクトリパス)\]**​ 項目で定義するパスには絶対パスを指定できます。また、作業ディレクトリを基準とする相対パスを指定することもできます。
- デフォルトでは、この操作はディレクトリパスのサブフォルダー内のファイルまたはフォルダーを読み取ったり、それらのリストを作成したりしません。
- サブフォルダー内のファイルまたはフォルダーのリストを作成するには、​**\[Recursive (再帰)\]**​ 項目を ​**TRUE**​ に設定します。

## [](#studio-で-list-操作を設定する)Studio で List 操作を設定する

Studio で ​**List**​ 操作を追加および設定する手順は、次のとおりです。

1. **\[Mule Palette (Mule パレット)\]**​ ビューで「​`ftp`​」を検索し、​**\[List\]**​ 操作を選択します。
2. **\[List\]**​ 操作を Studio キャンバスにドラッグします。
3. 操作の設定画面の ​**\[General (一般)\]**​ タブで、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。
4. 接続情報を指定し、​**\[OK\]**​ をクリックします。
5. **\[General (一般)\]**​ タブで、​**\[Directory path (ディレクトリパス)\]**​ を ​`~/dropFolder`​ に設定し、リストを作成するファイルのパスを設定します。

![Studio の List 操作の設定](/mulesoft/current/ja-jp/ftp-connector/1.5/_images/ftp-list-operation-1.png)

**設定 XML**​ エディターでは、​`<ftp:list>`​ 設定は次のように記述されます。

```xml
<ftp:list doc:name="List" config-ref="FTP_Config" directoryPath="~/dropFolder"/>
```

次の XML の例では、ディレクトリパスのメッセージのフォルダーコンテンツ (サブフォルダーコンテンツは除外) のリストを作成します。パスには絶対パスを指定できます。または、ファイル設定で設定した作業ディレクトリへの相対パスを指定することもできます。​**\[For Each\]**​ コンポーネントおよび ​**\[Choice (選択)\]**​ コンポーネントは、リストの各ディレクトリを各ファイルとは異なる方法で管理します。

```xml
<flow name="list">
  <ftp:list directoryPath="~/dropFolder" />
  <foreach>
    <choice>
      <when expression="#[attributes.directory]">
        <flow-ref name="processDirectory" />
      </when>
      <otherwise>
        <logger message="Found file #[attributes.path] which content is #[payload]" />
      </otherwise>
    </choice>
  </foreach>
</flow>
```

## [](#ディレクトリのポーリング)ディレクトリのポーリング

Mule 4 にはポーリングメッセージソースがないため、​**Scheduler**​ ソースを SFTP の ​**List**​ 操作と連携させて、ディレクトリをポーリングし、処理する新しいファイルを検索できます。  

次のディレクトリのポーリングの例では、フローによって 1 秒に 1 回フォルダーのコンテンツがリストされます。フローは続いてファイルを 1 つずつ処理します。​**\[For Each\]**​ コンポーネントに ​**Delete**​ 操作があるため、処理が終わると各ファイルを削除します。

```xml
<flow name="poll">
  <scheduler>
      <scheduling-strategy>
          <fixed-frequency frequency="1000"/>
      </scheduling-strategy>
  </scheduler>
  <ftp:list directoryPath="~/dropFolder" />
  <foreach>
<flow-ref name="processFile" />
<ftp:delete path="#[attributes.path]" />
</foreach>
</flow>
```

## [](#検索条件の一致)検索条件の一致

ファイルをリストする場合、指定した条件に一致するファイルを受け入れる ​**\[File Matching Rules (ファイル一致ルール)\]**​ 項目を使用します。この項目により、ファイルを受け入れるか拒否する属性を定義します。 これらの属性は省略可能であり、属性の値を提供しない場合は無視されます。​`AND`​ 演算子を使用して、各属性を結合します。

Studio で項目を設定するには、​**\[File Matching Rules (ファイル一致ルール)\]**​ 項目を ​**\[Edit inline (インラインで編集)\]**​ に設定し、目的の属性を入力します。

- **Timestamp since (次の日時からのタイムスタンプ)**​  
    この日付より前に作成されたファイルは却下されます。この値でのタイムゾーンの指定は無視され、代わりに Mule サーバーのタイムゾーンが使用されます。
- **Timestamp until (次の日時までのタイムスタンプ)**​  
    この日付より後に作成されたファイルは却下されます。この値でのタイムゾーンの指定は無視され、代わりに Mule サーバーのタイムゾーンが使用されます。
- **Not updated in the last (指定した期間に更新なし)**​  
    ファイルの最後の更新後の経過期間がこの期間以上の場合、却下されません。この属性は、​**\[Time unit (時間単位)\]**​ と連携して機能します。
- **Updated in the last (指定した期間に更新あり)**​  
    ファイルの最後の更新後の経過期間がこの期間以内の場合、却下されません。この属性は、​**\[Time unit (時間単位)\]**​ と連携して機能します。
- **Time unit (時間単位)**​  
    **\[Not updated in the last (指定した期間に更新なし)\]**​ 属性。デフォルトは ​`MILLISECONDS`​ です。
- **Filename pattern (ファイル名パターン)**​  
    現在のファイル名パターンの絞り込みと似ているが、より強力。グロブ表現 (デフォルト) および正規表現がサポートされています。プレフィックスを設定することでどちらを使用するか選択できます (例: `glob:*.{java, js}`​ または ​`regex:[0-9]test.csv`​)。
- **Path pattern (パスパターン)**​  
    **Filename pattern (ファイル名パターン)**​ と同じだが、ファイル名のみではなくファイルパス全体に適用される。
- **Directories (ディレクトリ)**​  
    ファイルがディレクトリの場合のみ一致する。
- **Regular files (正規ファイル)**​  
    ファイルが正規ファイルの場合のみ一致する。
- **Sym links (シンボリックリンク)**​\`  
    ファイルがシンボリックリンクの場合のみ一致する。
- **Min size (最小サイズ)**​  
    バイト数で表現されるファイルサイズの下限 (境界を含む)。
- **Max size (最大サイズ)**​  
    バイト数で表現されるファイルサイズの上限 (境界を含む)。

次のスクリーンショットは、Studio の ​**\[File Matching Rules (ファイル一致ルール)\]**​ 設定を示しています。

![「File Matching Rules (ファイル一致ルール)」 項目設定](/mulesoft/current/ja-jp/ftp-connector/1.5/_images/ftp-list-operation-2.png)

Figure 1. \[File Matching Rules (ファイル一致ルール)\] 項目設定

**設定 XML**​ エディターでは、設定は次のように記述されます。

```xml
<ftp:matcher
  timestampSince="2019-06-03T13:21:58+00:00"
  timestampUntil="2019-06-03T13:21:58+00:00"
  timeUnit="MICROSECONDS"
  filenamePattern="a?*.{htm,html,pdf}"
  pathPattern="a?*.{htm,html,pdf}"
  directories="REQUIRE"
  regularFiles="REQUIRE"
  symLinks="REQUIRE"
  maxSize="1024"/>
```

### [](#トップレベルの再利用可能なマッチャー)トップレベルの再利用可能なマッチャー

ファイルマッチャーは名前付きのトップレベル要素として使用して再利用を可能にするか、特定のコンポーネントに固有の内部要素として使用することができます。

次の例は、トップレベルの再利用可能なマッチャーを示しています。

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

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

次の例は、内部の再利用できないマッチャーを示しています。

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

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

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

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

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

- [FTP Connector の例](https://docs.mulesoft.com/jp/ftp-connector/1.5/ftp-examples)
- [MuleSoft ヘルプセンター](https://help.mulesoft.com)