在渲染过程中使用fs.readSync()
,并且buffer的元素始终为0。
使用fs.read()
将获得正确的结果。
const electron = window.require('electron');
const { remote } = electron;
const fs = remote.require('fs');
const fd = fs.openSync(localPath, 'r');
const fileStat = fs.fstatSync(fd);
const { size: fileSize } = fileStat;
const dataBuffer = Buffer.alloc(fileSize);
const readSize = 1024;
for(let i = 0; i < fileSize; i += readSize) {
fs.readSync(fd, dataBuffer, i, Math.min(fileSize - i, readSize), null);
console.log(dataBuffer);
}
答案 0 :(得分:0)
返回0
可能意味着同步操作因remote
而失败。您可能会在主线程中捕获异常。
BTW:在nodejs中,同步函数调用将非常慢。这就是为什么所有这些函数都以Sync
作为后缀命名的原因。我强烈建议您尽可能在任何地方编写异步代码。