> Discover all available pages from the documentation index: https://mastra.zisheng.pro/fr/llms.txt # WorkspaceFilesystem **Ajouté dans :** `@mastra/core@1.1.0` L’interface `WorkspaceFilesystem` définit la manière dont les espaces de travail interagissent avec le stockage de fichiers. ## Méthodes ### `readFile(path, options?)` Lit le contenu d’un fichier. ```typescript const content = await filesystem.readFile('/docs/guide.md') const buffer = await filesystem.readFile('/image.png', { encoding: 'binary' }) ``` **Paramètres :** **path** (`string`): Chemin du fichier relatif à basePath. **options** (`Options`): Options de readFile. **options.encoding** (`'utf-8' | 'binary'`): Encodage texte ou binaire. **Renvoie :** `Promise` ### `writeFile(path, content, options?)` Écrit le contenu d’un fichier. ```typescript await filesystem.writeFile('/docs/new.md', '# New Document') await filesystem.writeFile('/nested/path/file.md', content, { recursive: true }) ``` **Paramètres :** **path** (`string`): Chemin du fichier relatif à basePath. **content** (`string | Buffer`): Contenu du fichier. **options** (`Options`): Options de configuration. **options.recursive** (`boolean`): Crée les répertoires parents s’ils n’existent pas. **options.overwrite** (`boolean`): Écrase le fichier existant. **options.expectedMtime** (`Date`): Si cette valeur est fournie, l’écriture échoue avec une StaleFileError lorsque l’heure de modification actuelle du fichier ne correspond pas. Utilisez cette option pour un contrôle de concurrence optimiste afin de détecter les modifications externes entre la lecture et l’écriture. ### `deleteFile(path, options?)` Supprime un fichier. ```typescript await filesystem.deleteFile('/docs/old.md') await filesystem.deleteFile('/docs/maybe.md', { force: true }) // Don't throw if missing ``` **Paramètres :** **path** (`string`): Chemin du fichier. **options** (`Options`): Options de configuration. **options.force** (`boolean`): Ne lève pas d’erreur si le fichier n’existe pas. ### `appendFile(path, content)` Ajoute du contenu à un fichier en le créant s’il n’existe pas encore. Les répertoires parents sont créés automatiquement. ```typescript await filesystem.appendFile('/logs/app.log', 'New log entry\n') ``` **Paramètres :** **path** (`string`): Chemin du fichier. **content** (`string | Buffer`): Contenu à ajouter. ### `copyFile(src, dest, options?)` Copie un fichier vers un nouvel emplacement. ```typescript await filesystem.copyFile('/docs/template.md', '/docs/new-doc.md') ``` **Paramètres :** **src** (`string`): Chemin du fichier source. **dest** (`string`): Chemin du fichier de destination. **options** (`Options`): Options de configuration. **options.overwrite** (`boolean`): Écrase la destination si elle existe. ### `moveFile(src, dest, options?)` Déplace ou renomme un fichier. ```typescript await filesystem.moveFile('/docs/draft.md', '/docs/final.md') ``` **Paramètres :** **src** (`string`): Chemin du fichier source. **dest** (`string`): Chemin du fichier de destination. **options** (`Options`): Options de configuration. **options.overwrite** (`boolean`): Écrase la destination si elle existe. ### `readdir(path, options?)` Liste le contenu d’un répertoire. ```typescript const entries = await filesystem.readdir('/docs') // [{ name: 'guide.md', type: 'file' }, { name: 'api', type: 'directory' }] ``` **Renvoie :** `Promise` ```typescript interface FileEntry { name: string type: 'file' | 'directory' size?: number isSymlink?: boolean symlinkTarget?: string } ``` ### `mkdir(path, options?)` Crée un répertoire. ```typescript await filesystem.mkdir('/docs/api') await filesystem.mkdir('/deeply/nested/path', { recursive: true }) ``` **Paramètres :** **path** (`string`): Chemin du répertoire. **options** (`Options`): Options de configuration. **options.recursive** (`boolean`): Crée les répertoires parents. ### `rmdir(path, options?)` Supprime un répertoire. ```typescript await filesystem.rmdir('/docs/old') await filesystem.rmdir('/docs/nested', { recursive: true }) ``` **Paramètres :** **path** (`string`): Chemin du répertoire. **options** (`Options`): Options de configuration. **options.recursive** (`boolean`): Supprime le contenu récursivement. **options.force** (`boolean`): Ne lève pas d’erreur si le répertoire n’existe pas. ### `exists(path)` Vérifie si un chemin existe. ```typescript const exists = await filesystem.exists('/docs/guide.md') ``` **Renvoie :** `Promise` ### `stat(path)` Obtient les métadonnées d’un fichier ou d’un répertoire. ```typescript const stat = await filesystem.stat('/docs/guide.md') // { name: 'guide.md', path: '/docs/guide.md', type: 'file', size: 1234, createdAt: Date, modifiedAt: Date } ``` **Renvoie :** `Promise` ```typescript interface FileStat { name: string // File or directory name (basename only) path: string // Path relative to the filesystem basePath type: 'file' | 'directory' size: number createdAt: Date modifiedAt: Date mimeType?: string } ``` ## Méthodes facultatives ### `init()` Initialise le système de fichiers. Appelée par `workspace.init()`. ```typescript await filesystem.init?.() ``` ### `destroy()` Libère les ressources. Appelée par `workspace.destroy()`. ```typescript await filesystem.destroy?.() ``` ### `getInfo()` Obtient les métadonnées du système de fichiers. ```typescript const info = await filesystem.getInfo?.() // { id, name, provider, basePath, readOnly, status, storage? } ``` **Renvoie :** `Promise` ```typescript interface FilesystemInfo { id: string name: string provider: string basePath?: string readOnly?: boolean status?: string storage?: { totalBytes?: number usedBytes?: number availableBytes?: number } } ``` ### `getInstructions(opts?)` Renvoie une description du fonctionnement de ce système de fichiers. Elle est injectée dans le message système de l’agent lorsque l’espace de travail est attribué à un agent. ```typescript const instructions = filesystem.getInstructions?.() // 'Local filesystem at "/workspace". Files at workspace path "/foo" are stored at "/workspace/foo" on disk.' ``` **Paramètres :** **opts.requestContext** (`RequestContext`): Transmis à la fonction instructions si elle a été fournie au constructeur. **Renvoie :** `string` ## Articles associés - [Classe Workspace](https://mastra.zisheng.pro/fr/reference/workspace/workspace-class) - [Interface Sandbox](https://mastra.zisheng.pro/fr/reference/workspace/sandbox)