web-dev-qa-db-ja.com

Denoでファイルを書き込むにはどうすればよいですか?

Deno.writeFileを使用してファイルに書き込もうとしていた

await Deno.writeFile('./file.txt', 'some content')

しかし、次の不可解なエラーが発生しました:

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)

Denoでファイルを書き込む正しい方法は何ですか?

3

ensureDir を使用して安全に write files を存在しない可能性のあるディレクトリに使用できます。

import { ensureDir } from "https://deno.land/[email protected]/fs/ensure_dir.ts";

ensureDir("./my/dir")
  .then(() => Deno.writeTextFile("./my/dir/file.txt", "some content"));

含まれているファイルディレクトリは、 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"));

別の方法は ensureFile で、ファイルの存在をアサートします。

import { ensureFile } from "https:deno.land/std/fs/ensure_file.ts";

ensureFile(file).then(/* your file write method */)

このバリアントは少し冗長ではありませんが、追加の書き込み操作(存在しない場合はファイルの作成)のコストがかかります。

0
ford04