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

> Proporciona acceso al sistema de archivos para enumerar archivos y devolver sus metadatos y contenido.

# Función de tabla 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>
            Not supported in ClickHouse Cloud
        </div>;
};

Recorre recursivamente un directorio y devuelve una tabla con metadatos de archivos (rutas, tamaños, tipos, permisos, fechas de modificación) y, opcionalmente, el contenido de los archivos.

En el modo `clickhouse-server`, la ruta debe estar dentro del directorio [user\_files\_path](/es/reference/settings/server-settings/settings#user_files_path). Se siguen los enlaces simbólicos dentro de `user_files_path` que apuntan fuera de él, pero solo se devuelven las entradas cuya ruta (a través del enlace simbólico) comienza con `user_files_path`.

En el modo `clickhouse-local`, no hay restricciones de ruta.

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

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

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

| Parámetro | Descripción                                                                                                                                                                                                                                              |
| --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `path`    | El directorio que se va a listar. Puede ser una ruta absoluta (debe estar dentro de `user_files_path` cuando se ejecuta en modo server) o una ruta relativa a `user_files_path`. Si está vacío o se omite, el valor predeterminado es `user_files_path`. |

<div id="returned_columns">
  ## Columnas devueltas
</div>

| Columna             | Tipo                       | Descripción                                                                                                                                                                                                                                                        |
| ------------------- | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `path`              | `String`                   | Directorio que contiene la entrada (no incluye el nombre del archivo o directorio en sí).                                                                                                                                                                          |
| `name`              | `String`                   | Nombre del archivo o directorio (el último componente de la ruta).                                                                                                                                                                                                 |
| `file`              | `String` (ALIAS de `name`) | Alias de la columna `name`.                                                                                                                                                                                                                                        |
| `type`              | `Enum8`                    | Tipo de archivo: `'none'`, `'not_found'`, `'regular'`, `'directory'`, `'symlink'`, `'block'`, `'character'`, `'fifo'`, `'socket'`, `'unknown'`.                                                                                                                    |
| `size`              | `Nullable(UInt64)`         | Tamaño del archivo en bytes (para archivos normales). `NULL` para archivos no normales (directorios, enlaces simbólicos, etc.) y en caso de error.                                                                                                                 |
| `depth`             | `UInt16`                   | Profundidad de recursión. `0` para el propio directorio consultado y sus elementos secundarios inmediatos, `1` para las entradas un nivel más abajo, y así sucesivamente.                                                                                          |
| `modification_time` | `Nullable(DateTime64(6))`  | Fecha y hora de la última modificación con precisión de microsegundos. `NULL` en caso de error.                                                                                                                                                                    |
| `is_symlink`        | `Bool`                     | Indica si la entrada es un enlace simbólico.                                                                                                                                                                                                                       |
| `content`           | `Nullable(String)`         | Contenido del archivo (para archivos normales). `NULL` para archivos no normales (directorios, enlaces simbólicos, etc.). Los errores de lectura generan una excepción. Leer esta columna desencadena la E/S real del archivo, así que omítela si no es necesaria. |
| `owner_read`        | `Bool`                     | El propietario tiene permiso de lectura.                                                                                                                                                                                                                           |
| `owner_write`       | `Bool`                     | El propietario tiene permiso de escritura.                                                                                                                                                                                                                         |
| `owner_exec`        | `Bool`                     | El propietario tiene permiso de ejecución.                                                                                                                                                                                                                         |
| `group_read`        | `Bool`                     | El grupo tiene permiso de lectura.                                                                                                                                                                                                                                 |
| `group_write`       | `Bool`                     | El grupo tiene permiso de escritura.                                                                                                                                                                                                                               |
| `group_exec`        | `Bool`                     | El grupo tiene permiso de ejecución.                                                                                                                                                                                                                               |
| `others_read`       | `Bool`                     | Otros tienen permiso de lectura.                                                                                                                                                                                                                                   |
| `others_write`      | `Bool`                     | Otros tienen permiso de escritura.                                                                                                                                                                                                                                 |
| `others_exec`       | `Bool`                     | Otros tienen permiso de ejecución.                                                                                                                                                                                                                                 |
| `set_gid`           | `Bool`                     | Bit Set-GID.                                                                                                                                                                                                                                                       |
| `set_uid`           | `Bool`                     | Bit Set-UID.                                                                                                                                                                                                                                                       |
| `sticky_bit`        | `Bool`                     | Sticky bit.                                                                                                                                                                                                                                                        |

Solo se calculan las columnas que realmente se usan en la consulta, por lo que seleccionar un subconjunto de columnas (especialmente si se omite `content`) es eficiente.

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

<div id="list-files">
  ### Listar archivos en user\_files
</div>

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

<div id="find-large-files">
  ### Buscar archivos grandes
</div>

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

<div id="read-contents">
  ### Leer el contenido del archivo
</div>

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

<div id="list-immediate">
  ### Mostrar solo los elementos hijos inmediatos
</div>

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