このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
FileSystemFileHandle.createSyncAccessHandle()
 
 
 
 Baseline
 
 Widely available
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2023年3月.
安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。
FileSystemFileHandle インターフェイスの createSyncAccessHandle() メソッドは、同期式でファイルを読み書きできる FileSystemSyncAccessHandle オブジェクトで解決する Promise を返します。
このメソッドは同期式であることによりパフォーマンス上有利ですが、それ用の Web Workers によるオリジンプライベートファイルシステム内のファイルの操作にのみ用いることができます。
FileSystemSyncAccessHandle を作成すると、ファイルハンドルに対応するファイルの排他的ロックを取得します。これにより、作成したアクセスハンドルを閉じるまで、同じファイルについて FileSystemSyncAccessHandle や FileSystemWritableFileStream を作成することはできなくなります。
構文
createSyncAccessHandle()
引数
なし
返値
FileSystemSyncAccessHandle オブジェクトで解決する Promise を返します。
例外
InvalidStateErrorDOMException- 
FileSystemSyncAccessHandleオブジェクトがオリジンプライベートファイルシステム内のファイルを表していないとき投げられます、 NoModificationAllowedErrorDOMException- 
ブラウザーがファイルハンドルに対応するファイルのロックを取得できないとき投げられます。
 NotAllowedErrorDOMException- 
API レベルで許可されていないとき投げられます。(すなわち、
FileSystemHandle.requestPermissionが必要です) 
例
以下の非同期のイベントハンドラーは、Web Worker 内にあります。そのうちのこの部分は、同期式ファイルアクセスハンドルを作成します。
onmessage = async (e) => {
 // メインスクリプトから送られた処理対象のメッセージを取得する
 const message = e.data;
 // draft ファイルへのハンドルを取得する
 const root = await navigator.storage.getDirectory();
 const draftHandle = await root.getFileHandle("draft.txt", { create: true });
 // 同期式アクセスハンドルを取得する
 const accessHandle = await draftHandle.createSyncAccessHandle();
 // ...
 // 完了したら、常に FileSystemSyncAccessHandle を閉じる
 accessHandle.close();
};
仕様書
| Specification | 
|---|
| File System> # api-filesystemfilehandle-createsyncaccesshandle>  | 
 
ブラウザーの互換性
Loading...