【发布时间】:2019-05-28 22:58:13
【问题描述】:
在渲染过程中使用fs.readSync(),缓冲区的元素总是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);
}
【问题讨论】:
-
对于
fs,您不需要通过电子遥控器(因为它是默认的nodejs模块)。简单写const fs = require('fs')。我不知道为什么它不能以另一种方式工作。 -
如果在渲染过程中直接使用
const fs = require('fs'),会抛出错误fs.openSync is not a function。可能是因为数组是通过远程复制的?有没有办法加载大文件?
标签: javascript electron fs