> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Gestión de archivos

> Explora, lee, crea, mueve y elimina archivos dentro de tu aplicación a través del FilesModule.

Todos los métodos de esta página residen en `app.files`:

```typescript theme={null}
const app = await api.applications.fetch("abc123def456abc123def456");
app.files; // FilesModule
```

## Listado de archivos en un directorio

`app.files.list(path?)` devuelve las entradas de un directorio. La ruta por defecto es `"/"`.

```typescript theme={null}
const entries = await app.files.list("/");
console.log(entries);
// [
//   { type: "file",      name: "index.js", size: 123, lastModified: 1717084800000 },
//   { type: "directory", name: "src",      size: 0,   lastModified: 1717084800000 },
// ]
```

## Lectura de un archivo

`app.files.read(path)` devuelve un `Buffer` de Node.js con el contenido del archivo, o `undefined` cuando el archivo no existe.

```typescript theme={null}
const buffer = await app.files.read("/index.js");
console.log(buffer?.toString("utf8"));
```

## Creación o sobrescritura de un archivo

`app.files.create(file, fileName, path?)` escribe un archivo en `path/fileName`. La ruta por defecto es `"/"`.

| Parámetro  | Tipo               | Descripción                                                             |
| ---------- | ------------------ | ----------------------------------------------------------------------- |
| `file`     | `string \| Buffer` | Una ruta de archivo local o el contenido `Buffer` sin procesar          |
| `fileName` | `string`           | Nombre del archivo con extensión (p. ej. `"version.ts"`)                |
| `path`     | `string`           | Ruta de directorio absoluta dentro de la aplicación (por defecto `"/"`) |

<Tabs>
  <Tab title="Desde un Buffer">
    ```typescript theme={null}
    const content = Buffer.from("export default 1\n");
    await app.files.create(content, "version.ts", "/src");
    ```
  </Tab>

  <Tab title="Desde una ruta local">
    ```typescript theme={null}
    import { join } from "node:path";

    const localPath = join(__dirname, "version.ts");
    await app.files.create(localPath, "version.ts", "/src");
    ```
  </Tab>
</Tabs>

<Warning>
  La firma cambió en la v4. Las versiones anteriores aceptaban `create(content, fullPath)`; la v4 requiere `create(content, fileName, path)`.
</Warning>

## Mover o renombrar un archivo

`app.files.move(path, newPath)` mueve o renombra un archivo o directorio.

```typescript theme={null}
await app.files.move("/version.ts", "/src/version.ts");
```

## Eliminación de un archivo o directorio

`app.files.delete(path)` elimina un archivo o un directorio completo.

```typescript theme={null}
await app.files.delete("/src/version.ts");
```
