FileSystemSyncAccessHandle: truncate() 方法

基线 2023

新发布

2023 年 3 月起,此功能可在所有最新设备和浏览器版本上运行。此功能可能在较旧的设备或浏览器上无法正常运行。

安全上下文:此功能仅在 安全上下文 (HTTPS) 中可用,在部分或所有 支持的浏览器 中可用。

注意:此功能仅在 专用 Web 工作线程 中可用。

truncate() 方法是 FileSystemSyncAccessHandle 接口的方法,它将与句柄关联的文件大小调整为指定字节数。

注意:在规范的早期版本中,close()flush()getSize()truncate() 被错误地指定为异步方法,一些浏览器的旧版本以这种方式实现它们。但是,所有当前支持这些方法的浏览器都将它们实现为同步方法。

语法

js
truncate(newSize)

参数

newSize

将文件大小调整到的字节数。

返回值

无 (undefined).

异常

InvalidStateError DOMException

如果关联的访问句柄已关闭,或者如果文件二进制数据的修改失败,则抛出此异常。

QuotaExceededError DOMException

如果 newSize 大于文件的原始大小,并且超过了浏览器的 存储配额,则抛出此异常。

TypeError

如果底层文件系统不支持将文件大小设置为新大小,则抛出此异常。

示例

js
async function truncateFile() {
  // Get handle to draft file
  const root = await navigator.storage.getDirectory();
  const draftHandle = await root.getFileHandle("draft.txt", { create: true });
  // Get sync access handle
  const accessHandle = await draftHandle.createSyncAccessHandle();

  // Truncate the file to 0 bytes
  accessHandle.truncate(0);

  // Persist changes to disk.
  accessHandle.flush();

  // Always close FileSystemSyncAccessHandle if done.
  accessHandle.close();
}

规范

规范
文件系统标准
# api-filesystemsyncaccesshandle-truncate

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅