> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-fbfa8bee.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Fournit un accès au système de fichiers pour répertorier les fichiers et renvoyer leurs métadonnées ainsi que leur contenu.

# filesystem

export const CloudNotSupportedBadge = () => {
  return <div className="cloudNotSupportedBadge">
            <div className="cloudNotSupportedIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path strokeWidth="1.5" d="M6.33366 12.6666L12.3739 12.6667C13.6593 12.6667 14.7073 11.6187 14.7073 10.3334C14.7073 9.04804 13.6593 8.00003 12.3739 8.00003C12.3739 8.00003 12.3337 7.66659 12.0003 7.33325M10.667 5.33322C8.00033 2.33325 4.45395 4.78537 4.14195 6.68203C2.55728 6.7627 1.29395 8.06203 1.29395 9.6667C1.29395 11.3234 2.66699 12.6666 4.00033 12.6666" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.5" d="M2.66699 14L12.0003 4.66663" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>

        </div>
            Non pris en charge par ClickHouse Cloud
        </div>;
};

<div id="filesystem-table-function">
  # Fonction de table filesystem
</div>

Parcourt récursivement un répertoire et renvoie une table contenant les métadonnées des fichiers (`paths`, tailles, types, permissions, dates de modification) et, éventuellement, le contenu des fichiers.

En mode `clickhouse-server`, le chemin doit se trouver dans le répertoire [user\_files\_path](/fr/reference/settings/server-settings/settings#user_files_path). Les liens symboliques à l’intérieur de `user_files_path` qui pointent en dehors de celui-ci sont suivis, mais seules les entrées dont le chemin (via le lien symbolique) commence par `user_files_path` sont renvoyées.

En mode `clickhouse-local`, il n’y a aucune restriction de chemin.

<div id="syntax">
  ## Syntaxe
</div>

```sql theme={null}
filesystem([path])
```

<div id="arguments">
  ## Arguments
</div>

| Paramètre | Description                                                                                                                                                                                                                         |
| --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `path`    | Le répertoire à lister. Il peut s’agir d’un chemin absolu (qui doit se trouver dans `user_files_path` en mode serveur) ou d’un chemin relatif à `user_files_path`. S’il est vide ou omis, `user_files_path` est utilisé par défaut. |

<div id="returned_columns">
  ## Colonnes renvoyées
</div>

| Column              | Type                       | Description                                                                                                                                                                                                                                                                                      |
| ------------------- | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `path`              | `String`                   | Répertoire contenant l’entrée (sans inclure le nom du fichier/répertoire lui-même).                                                                                                                                                                                                              |
| `name`              | `String`                   | Nom du fichier ou du répertoire (dernier composant du chemin).                                                                                                                                                                                                                                   |
| `file`              | `String` (ALIAS of `name`) | Alias de la colonne `name`.                                                                                                                                                                                                                                                                      |
| `type`              | `Enum8`                    | Type de fichier : `'none'`, `'not_found'`, `'regular'`, `'directory'`, `'symlink'`, `'block'`, `'character'`, `'fifo'`, `'socket'`, `'unknown'`.                                                                                                                                                 |
| `size`              | `Nullable(UInt64)`         | Taille du fichier en octets (pour les fichiers ordinaires). `NULL` pour les fichiers non ordinaires (répertoires, liens symboliques, etc.) et en cas d’erreur.                                                                                                                                   |
| `depth`             | `UInt16`                   | Profondeur de récursion. `0` pour le répertoire interrogé lui-même et ses enfants immédiats, `1` pour les entrées situées un niveau plus bas, et ainsi de suite.                                                                                                                                 |
| `modification_time` | `Nullable(DateTime64(6))`  | Date et heure de dernière modification, avec une précision à la microseconde. `NULL` en cas d’erreur.                                                                                                                                                                                            |
| `is_symlink`        | `Bool`                     | Indique si l’entrée est un lien symbolique.                                                                                                                                                                                                                                                      |
| `content`           | `Nullable(String)`         | Contenu du fichier (pour les fichiers ordinaires). `NULL` pour les fichiers non ordinaires (répertoires, liens symboliques, etc.). Les erreurs de lecture lèvent une exception. La lecture de cette colonne déclenche des E/S de fichier réelles ; omettez-la donc si vous n’en avez pas besoin. |
| `owner_read`        | `Bool`                     | Le propriétaire dispose du droit de lecture.                                                                                                                                                                                                                                                     |
| `owner_write`       | `Bool`                     | Le propriétaire dispose du droit d’écriture.                                                                                                                                                                                                                                                     |
| `owner_exec`        | `Bool`                     | Le propriétaire dispose du droit d’exécution.                                                                                                                                                                                                                                                    |
| `group_read`        | `Bool`                     | Le groupe dispose du droit de lecture.                                                                                                                                                                                                                                                           |
| `group_write`       | `Bool`                     | Le groupe dispose du droit d’écriture.                                                                                                                                                                                                                                                           |
| `group_exec`        | `Bool`                     | Le groupe dispose du droit d’exécution.                                                                                                                                                                                                                                                          |
| `others_read`       | `Bool`                     | Les autres disposent du droit de lecture.                                                                                                                                                                                                                                                        |
| `others_write`      | `Bool`                     | Les autres disposent du droit d’écriture.                                                                                                                                                                                                                                                        |
| `others_exec`       | `Bool`                     | Les autres disposent du droit d’exécution.                                                                                                                                                                                                                                                       |
| `set_gid`           | `Bool`                     | Bit set-GID.                                                                                                                                                                                                                                                                                     |
| `set_uid`           | `Bool`                     | Bit set-UID.                                                                                                                                                                                                                                                                                     |
| `sticky_bit`        | `Bool`                     | Sticky bit.                                                                                                                                                                                                                                                                                      |

Seules les colonnes effectivement utilisées dans la requête sont calculées ; sélectionner un sous-ensemble de colonnes (en particulier en omettant `content`) est donc efficace.

<div id="examples">
  ## Exemples
</div>

<div id="list-files">
  ### Lister les fichiers dans user\_files
</div>

```sql theme={null}
SELECT name, type, size, depth
FROM filesystem()
ORDER BY name;
```

<div id="find-large-files">
  ### Repérer les fichiers volumineux
</div>

```sql theme={null}
SELECT path, name, size
FROM filesystem()
WHERE type = 'regular' AND size > 1000000
ORDER BY size DESC;
```

<div id="read-contents">
  ### Lire le contenu d’un fichier
</div>

```sql theme={null}
SELECT name, content
FROM filesystem('my_directory')
WHERE name LIKE '%.csv';
```

<div id="list-immediate">
  ### Lister uniquement les éléments enfants immédiats
</div>

```sql theme={null}
SELECT name, type
FROM filesystem('my_directory')
WHERE depth = 0;
```
