使用电子在本地保存文件

IT技术 javascript forms npm electron
2021-02-20 16:01:30

我有一些模板文件,每个文件都包含几个变量字符串,我想用 Electron ( https://www.electronjs.org/ )构建一个非常简单的输入表单,并且我想将组合的输出文件保存在用户的计算机。

有没有什么module可以让 Electron 在本地保存文件?

3个回答

如果您针对多个平台,我在这里回答了一个类似的问题基本上app.getPath(name)app.setPath(name, path)app.getAppPath()在将文件保存到正确位置方面非常有用,而不管操作系统如何。

您可能还想查看这些 Nodejs 包,它们有助于简化将文件直接保存到主机的过程……

如果您打算让用户保存文件,您还可以查看Dialog api,您可以在其中专门为此目的调用保存对话框

我使用 app.getAppPath 创建一个文件。您不能在托管您的电子应用程序的文件夹中创建文件。
2021-05-14 16:01:30

示例代码是:

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功能。

你是什​​么意思?
2021-04-21 16:01:30
如果你指定一个相对路径,就像我所做的那样,它会保存在你在当前目录下给出的路径上(比如说C:\MyIncredibleFolder\myfile.txt)。如果您提供绝对路径,它会将文件保存在您提供的确切路径下。另外,如果你想知道你给出的相对路径会产生什么结果,你可以打印结果require('path').join(process.cwd(), "my/relative/path.txt")
2021-04-22 16:01:30
这引发了更多的问题,然后它会回答。
2021-05-01 16:01:30
如何定义保存文件的特定路径
2021-05-12 16:01:30
这应该保存到哪里?似乎对我不起作用。
2021-05-18 16:01:30
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');
            });
        },
    }
}
优秀的; 这次真是万分感谢。我没有意识到 Electron 内置了这些功能。我的用例缺少新的文件系统访问 API,因为我无法获得完整的选定路径。
2021-04-26 16:01:30