FileSystemFileHandle.createWritable()

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。

FileSystemFileHandle インターフェイスの createWritable() メソッドは、ファイルへの書き込みができる FileSystemWritableFileStream を作成します。このメソッドは、作成されたストリームで解決する Promise を返します。

ストリームに対してなされたあらゆる変更は、ストリームを閉じるまで、ファイルハンドルが表すファイルには反映されません。これは、典型的には、データを一時ファイルに書き込み、書き込み可能なファイルストリームが閉じられてはじめてファイルハンドルが表すファイルを一時ファイルで置き換えることで実装されています。

構文

js
createWritable()

引数

FileSystemCreateWritableOptions

メソッドに渡すオプションを表すオブジェクトです。以下のオプションがあります。

  • keepExistingData: false であるか指定されない場合、一時ファイルは空に初期化されます。 そうでない場合、既存のファイルがまず一時ファイルにコピーされます。

返値

FileSystemWritableFileStream オブジェクトで解決される Promise を返します。

例外

NotAllowedError

ハンドルの PermissionStatus.statereadwrite モードで 'granted' でないとき投げられます。

以下の非同期関数は、与えられた内容をファイルハンドルに書き込むことで、ディスクに書き込みます。

js
async function writeFile(fileHandle, contents) {
  // 書き込み先の FileSystemWritableFileStream を作成する
  const writable = await fileHandle.createWritable();

  // ファイルの内容をストリームに書き込む
  await writable.write(contents);

  // ファイルを閉じ、内容をディスクに書き込む
  await writable.close();
}

仕様書

Specification
File System Standard
# api-filesystemfilehandle-createwritable

ブラウザーの互換性

BCD tables only load in the browser

関連情報