CreateWritable

来自小青青的笔记
跳到导航 跳到搜索
搬运.jpg

做好本地化工作!

这篇笔记复制粘贴搬运自别的网站,存在格式不标准、乱码、缺少元素等问题。

FileSystemFileHandle 接口的 createWritable() 方法用于创建一个 FileSystemWritableFileStream 对象,可用于写入文件。此方法返回一个可兑现这些写入流的 Promise 对象。

任何通过写入流造成的更改在写入流被关闭前都不会反映到文件句柄所代表的文件上。这通常是将数据写入到一个临时文件来实现的,然后只有在写入文件流被关闭后才会用临时文件替换掉文件句柄所代表的文件。

语法

createWritable() createWritable(options)

参数

options 可选 一个包含以下属性的对象:

keepExistingData 可选 布尔值,默认为 false。当设为 true 时,如果文件存在,则现将现有文件的内容复制到临时文件,否则临时文件初始时内容为空。

mode 可选 非标准 指定可写文件流的锁定模式的字符串。默认值为 "siloed"。可能的值包括:

"exclusive" 只能打开一个 FileSystemWritableFileStream 写入器。在第一个写入器关闭之前尝试打开后续写入器会导致抛出 NoModificationAllowedError 异常。

"siloed" 可以同时打开多个 FileSystemWritableFileStream 写入器,每个写入器都有自己的交换文件,例如在多个标签页中使用同一个应用时。最后打开的写入器会写入其数据,因为每个写入器关闭时都会刷新数据。

返回值

一个 Promise 对象,可兑现一个 FileSystemWritableFileStream 对象。

异常

NotAllowedError DOMException

如果句柄在读写(readwrite)模式下的 PermissionStatus.state 不为 'granted',则抛出此异常。

NotFoundError DOMException

如果未找到当前条目,则抛出该异常。

NoModificationAllowedError DOMException

如果浏览器无法获取与文件句柄关联的文件的锁,则抛出该异常。这可能是因为 mode 设置为 exclusive,并且尝试同时打开多个写入器。

AbortError DOMException

如果实现定义的恶意软件扫描和安全浏览检查失败,则抛出此异常。