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でファイルを書き込む正しい方法は何ですか?
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 */)
このバリアントは少し冗長ではありませんが、追加の書き込み操作(存在しない場合はファイルの作成)のコストがかかります。