javascript - 是否可以使用 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”写入所选文件。如果文件已经存在,它将被截断并用新内容覆盖。
是否可以在不读取整个文件并再次写入的情况下追加到现有文件?一个很好的例子是写入日志文件。
解决方案
您可以获取当前文件大小并将写入位置设置为末尾:
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
推荐阅读
- wordpress - 所有帖子的WordPress作者更改
- laravel - Laravel:如何使用户的所有会话从 redis 无效并从所有设备注销?
- javascript - 无法使用js将文件值发送到asp.net mvc中的控制器
- python - 短信散点图
- scala - 使用 Akka HTTP 和 circe 处理 PATCH 请求以获取可空字段
- gradle - 使用IDEA时如何修复build.gradle的`import com.r3.testing.DistributeTestsBy`的红色警告?
- c++ - C++ OpenCV:编写 4 通道浮点图像
- swift - 我可以以编程方式将图像或文件上传到 wkwebview 输入字段吗?
- microsoft-graph-api - 创建聊天线程终结点在 Microsoft Graph 上不起作用
- java - 如何从 .pdf 工件中清除文本?