Electronでエディタを作る(ACE使用) ~ローカルへファイル書込み~
2016/06/14
[ad#top-1]
前回、ローカルにあるSift-JISファイルを読み込む方法を紹介しました。エディタライブラリーACEを使っています。
今回は書込みです。index.html側に[Save]ボタンを仕込んでおきます。
<button onclick=”saveAsFile();”>Save</button>
で、JavaScript(editor.js)に以下のコードを書けばOKです。
function saveAsFile() { |
var win = browserWindow.getFocusedWindow(); |
dialog.showSaveDialog( |
win, |
{ |
properties: [‘openFile’], |
filters: [ |
{ |
name: ‘C#ソースファイル’, |
extensions: [‘cs’] |
}, |
{ |
name: ‘テキストファイル’, |
extensions: [‘txt’] |
} |
] |
}, |
// セーブ用ダイアログが閉じられた後のコールバック関数 |
function (fileName) { |
if (fileName) { |
var data = editor.getValue(); |
writeFile(fileName, data); |
} |
} |
); |
} |
function writeFile(path, data) { |
fs.writeFile(path, data, function (error) { |
if (error != null) { |
alert(‘error : ‘ + error); |
return; |
} |
}); |
} |
出来栄えはこんな感じです。
saveAsFile()は、いわゆる「名前を付けて保存」なので、毎回どこに保存するかダイアログが現れます。もし上書き保存をしたい場合は、writeFile(path, data)を直接たたけばOKです。ただし、この場合は引数であるpathとdataを渡す必要があるので、直接ではなく別の関数を用意してpathとdataを渡すか、まあ、僕だったらpathくらいはHTML側でdiv要素で保持しておくのかもしれません。やり方はいろいろあるかと。
[ad#ad-1]
スポンサーリンク