J'essayais d'écrire dans un fichier en utilisant Deno.writeFile
await Deno.writeFile('./file.txt', 'some content')
Mais j'ai l'erreur cryptique suivante:
error: Uncaught TypeError: arr.subarray is not a function
at Object.writeAll ($deno$/buffer.ts:212:35)
at Object.writeFile ($deno$/write_file.ts:70:9)
Quelle est la bonne façon d'écrire des fichiers dans Deno?
Vous pouvez utiliser ensureDir
pour en toute sécurité écrire des fichiers dans des répertoires éventuellement inexistants:
import { ensureDir } from "https://deno.land/[email protected]/fs/ensure_dir.ts";
ensureDir("./my/dir")
.then(() => Deno.writeTextFile("./my/dir/file.txt", "some content"));
Le répertoire du fichier contenant peut être dérivé via dirname
:
import { dirname } from "https://deno.land/[email protected]/path/mod.ts";
const file = "./my/dir/file.txt";
ensureDir(dirname(file)).then(() => Deno.writeTextFile(file, "some content"));
Une alternative est ensureFile
pour affirmer l'existence du fichier:
import { ensureFile } from "https:deno.land/std/fs/ensure_file.ts";
ensureFile(file).then(/* your file write method */)
Cette variante est légèrement moins verbeuse, avec le coût d'une opération d'écriture supplémentaire (création de fichier, si elle n'existe pas).