[Electron] ファイルオープンダイアログとファイル読み込みに保存ボタンを追加して、ファイル保存ダイアログの表示とファイル保存処理を追加した。

まるっと、新しいソースもアップしておく。

保存ボタンを押した時の処理をあげておく。

        // ファイル保存ダイアログを表示する
        dialog.showSaveDialog(remote.getCurrentWindow(), {
            filters:[
                { name: "Text File", extensions:["txt"]},
                { name: "All Files", extensions: ["*"]}
            ]}, filename=>{
                if(filename) {
                    // ファイルに保存
                    fs.writeFile(filename, this.state.text, err=>{
                        if(err) {
                            alert(err);
                        }
                    });
                }
            });

dialog.showSaveDialogでファイル保存ダイアログを表示する。

第1引数は、親ウインドウでremote.getCurrentWindow()でレンダラープロセスで表示しているページのウインドウが取得できる。

第2引数は、ダイアログのオプションを指定する。
よく使いそうなのをピックアップして書いとく。詳細はドキュメントを見よ!

  • filters:表示するや選択できるファイルの種類を配列で指定する。
filters:[
    { name: "Text File", extensions:["txt"]},
    { name: "All Files", extensions: ["*"]}
],

第3引数は、コールバック関数。
入力したファイル名(フルパス)が渡される関数を指定する。
上に載せたソースでは、Node.jsのfs.writeFileを使ってTextAreaの内容を保存している。