# List

### Overview

The **List Component** retrieves a list of files and directories from an FTP or SFTP server at a specified path, enabling workflows to manage and process remote files dynamically.

### Usage

This component connects to an FTP/SFTP server, lists the contents of a specified directory, and provides information about the files and folders.

#### Input Ports

| Port | Description                                                           |
| ---- | --------------------------------------------------------------------- |
| `in` | Receives the directory path for which the listing is to be retrieved. |

#### Output Ports

| Port  | Description                                                        |
| ----- | ------------------------------------------------------------------ |
| `out` | Emits the list of files and directories within the specified path. |

#### Properties

| Property | Type     | Description                                                   |
| -------- | -------- | ------------------------------------------------------------- |
| `path`   | `string` | The remote directory path for which the listing is requested. |

#### Processing Logic

1. **Establishes FTP/SFTP Connection**: Connects to the remote server using provided authentication.
2. **Lists Directory Contents**:
   * Checks if the specified path exists.
   * Retrieves details such as filenames, file types, and sizes.
3. **Handles Success & Errors**:
   * If successful, outputs the directory contents to the `out` port.
   * If the path is invalid or access is denied, an error is thrown.
4. **Closes Connection**: Ensures the connection is terminated after execution.

#### Output Data Schema

| Property  | Type    | Description                                                                                                                   |
| --------- | ------- | ----------------------------------------------------------------------------------------------------------------------------- |
| `content` | `array` | A list of files and directories in the specified path. Each entry contains metadata such as name, type, size, and timestamps. |

### Notes

* **Supports FTP & SFTP**: Works with both FTP and secure FTP (SFTP) connections.
* **Efficient File Management**: Enables dynamic file and directory processing within workflows.
* **Error Handling**: Detects invalid paths and permission errors, sending appropriate error messages.

This component is essential for workflows that require automated remote file and directory listing.
