web-dev-qa-db-fra.com

Comment puis-je écrire des fichiers dans Deno?

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?

3

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).

0
ford04