首页 > 解决方案 > 是否可以使用 Chrome 的文件系统访问 API 附加到现有文件

问题描述

使用新File System Access API的可以读取和写入用户设备上的文件和文件夹:

const newHandle = await window.showSaveFilePicker();
const writableStream = await newHandle.createWritable();
await writableStream.write("Hello World")
await writableStream.close();

上面的代码会将“Hello World”写入所选文件。如果文件已经存在,它将被截断并用新内容覆盖。

是否可以在不读取整个文件并再次写入的情况下追加到现有文件?一个很好的例子是写入日志文件。

标签: javascriptgoogle-chromefile-system-access-api

解决方案


您可以获取当前文件大小并将写入位置设置为末尾:

const newHandle = await window.showSaveFilePicker();
const writableStream = await newHandle.createWritable();

// Get the current file size.
const size = (await fileHandle.getFile()).size;

await writableStream.write({
  type: "write",
  data: "Hello World",
  position: size // Set the position to the current file size.
})
await writableStream.close();

更多信息:

https://developer.mozilla.org/en-US/docs/Web/API/FileSystemWritableFileStream/write https://developer.mozilla.org/en-US/docs/Web/API/IDBMutableFile/getFile


推荐阅读