このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

FileSystemFileHandle.createWritable()

Baseline 2025
Newly available

Since September 2025, this feature works across the latest devices and browser versions. This feature might not work in older devices or 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

ブラウザーの互換性

関連情報