FileSystemSyncAccessHandle:truncate() 方法

Baseline 已广泛支持

此功能已成熟,并可在许多设备和浏览器版本上运行。自 2023 年 3 月以来,它已在各种浏览器中可用。

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

注意:此功能仅在 专用 Web Worker 中可用。

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

注意: 在规范的早期版本中,close()flush()getSize()truncate() 被错误地指定为异步方法,并且某些浏览器旧版本也这样实现。然而,目前所有支持这些方法的浏览器都将它们实现为同步方法。

语法

js
truncate(newSize)

参数

newSize

要将文件调整到的字节数。

返回值

无(undefined)。

异常

InvalidStateError DOMException

如果关联的访问句柄已关闭,或者文件二进制数据的修改因其他原因失败,则会抛出此错误。

QuotaExceededError

如果 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

浏览器兼容性

另见