用电子保存后如何停止访问文件
How do i stop accessing a file after saving it with electron
我目前正在将文件 (blob) 保存到文件系统。我使用 electron 的 'fs' 包。
这是当前代码:
const assetBuffer = Buffer.from(await blob.arrayBuffer());
this.electronService.fs.createWriteStream(filePath).write(assetBuffer);
保存文件后,当我尝试打开文件时收到错误或警告。 “该文件当前正在被另一个应用程序访问”。所以我假设 write
函数仍在后台访问文件并且保存从未完全完成。
请问有什么方法可以完全完成保存,然后再打开文件吗?
目前它通过重新启动应用程序来工作。但这不是最佳选择。
一个可能的原因是您没有关闭流。为此,您只需将流存储在变量中,然后 close
一旦 write
像这样完成写入:
const assetBuffer = Buffer.from(await blob.arrayBuffer());
const writeStream = this.electronService.fs.createWriteStream(filePath);
writeStream.write(assetBuffer, (err) => {
if (err) console.error(err);
writeStream.close((erro) => console.error(erro));
});
我目前正在将文件 (blob) 保存到文件系统。我使用 electron 的 'fs' 包。
这是当前代码:
const assetBuffer = Buffer.from(await blob.arrayBuffer());
this.electronService.fs.createWriteStream(filePath).write(assetBuffer);
保存文件后,当我尝试打开文件时收到错误或警告。 “该文件当前正在被另一个应用程序访问”。所以我假设 write
函数仍在后台访问文件并且保存从未完全完成。
请问有什么方法可以完全完成保存,然后再打开文件吗? 目前它通过重新启动应用程序来工作。但这不是最佳选择。
一个可能的原因是您没有关闭流。为此,您只需将流存储在变量中,然后 close
一旦 write
像这样完成写入:
const assetBuffer = Buffer.from(await blob.arrayBuffer());
const writeStream = this.electronService.fs.createWriteStream(filePath);
writeStream.write(assetBuffer, (err) => {
if (err) console.error(err);
writeStream.close((erro) => console.error(erro));
});