我有一些模板文件,每个文件都包含几个变量字符串,我想用 Electron ( https://www.electronjs.org/ )构建一个非常简单的输入表单,并且我想将组合的输出文件保存在用户的计算机。
有没有什么module可以让 Electron 在本地保存文件?
我有一些模板文件,每个文件都包含几个变量字符串,我想用 Electron ( https://www.electronjs.org/ )构建一个非常简单的输入表单,并且我想将组合的输出文件保存在用户的计算机。
有没有什么module可以让 Electron 在本地保存文件?
如果您针对多个平台,我在这里回答了一个类似的问题。基本上app.getPath(name)、app.setPath(name, path)和app.getAppPath()在将文件保存到正确位置方面非常有用,而不管操作系统如何。
您可能还想查看这些 Nodejs 包,它们有助于简化将文件直接保存到主机的过程……
如果您打算让用户保存文件,您还可以查看Dialog api,您可以在其中专门为此目的调用保存对话框。
示例代码是:
const fs = require('fs');
try { fs.writeFileSync('myfile.txt', 'the text to write in the file', 'utf-8'); }
catch(e) { alert('Failed to save the file !'); }
您当然可以将文件名和内容名存储在变量中。
这会将内容保存在 中myfile.txt
,该目录位于当前工作目录(您可以通过process.cwd()
)内。如果要写入,假设在用户的主目录中,您可以使用该app.getPath
功能。
const {dialog} = require('electron').remote;
var fs = require('fs');
export default {
methods: {
save: function () {
var options = {
title: "Save file",
defaultPath : "my_filename",
buttonLabel : "Save",
filters :[
{name: 'txt', extensions: ['txt']},
{name: 'All Files', extensions: ['*']}
]
};
dialog.showSaveDialog(null, options).then(({ filePath }) => {
fs.writeFileSync(filePath, "hello world", 'utf-8');
});
},
}
}