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
# api-filesystemfilehandle-createwritable

ブラウザーの互換性

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
createWritable
mode option
ExperimentalNon-standard

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
Experimental. Expect behavior to change in the future.
Non-standard. Check cross-browser support before using.
See implementation notes.

関連情報