上一节我们使用node.js的文件服务打开和保存文件,现在我们看如何使用electron的对话框来选择本地文件。可以在主进程操作electron的对话框,如果在渲染进程操作,需要使用remote访问主进程,代码是这样的:
const {dialog} = require('electron').remote;
然后,就可以启动对话框选择文件了,启动打开对话框的代码如下:
let options = {
title : "打开文件",
defaultPath : "",
buttonLabel : "打开",
filters :[
{name: '文本文件', extensions: ['txt']},
{name: 'All Files', extensions: ['*']}
],
properties: ['openFile']
}
let files=dialog.showOpenDialogSync( options);
这里使用的是同步打开,如果使用异步方法,可以使用showOpenDialog,后面加回调函数。还有需要注意的是返回的是数组,下面是打开文件的代码:
if(file&&file.length>0)
fs.readFile(file[0], 'utf8', function (err, data) {
console.log(data);
});
保存文件与打开文件类似,只是返回的是文件路径,不是数组了。代码如下:
let file=dialog.showSaveDialogSync(
{
filters :[
{name: 'Text', extensions: ['txt']},
{name: 'All Files', extensions: ['*']}
],
properties: ['saveFile']
}
);
console.log(file);
if(file)
fs.writeFile(file, txt.value, function (err) {
if(err) alert(err);
else alert("保存成功");
});