使用Electron開啟檔案
前言
這是第2次使用Electron,這次要實作在商用軟體常用的的開啟檔案,在此就做個紀錄。內容
這次要在Electron中使用node.js的模組(module),使用fs模組來開啟檔案與使用dialog模組來選取檔案。在Electron使用模組時不能直接透過require()來取得該模組,要使用的話要改一下方法,載入的程式碼如下
const remote = require('electron').remote; const fs = remote.require('fs'); const dialog = remote.dialog ;
可以看到的是和node.js不一樣,在node.js只須直接require()即可,但Electron需要透過Electron模組的remote模組來取得fs模組與dialog模組。
開啟選取檔案視窗的用法是透過dialog.showOpenDialog()來開啟,使用的範例如下
dialog.showOpenDialog(properties: ['openFile']},function(fileURLList){ if(!fileURLList){ console.log("No file to selected!"); return; } for(var i=0;i<fileURLList.length;i++){ console.log("Select file:"+fileURLList[i]); } });
這裡要注意因為選取檔案視窗是可以選取多個檔案的,所以得到的結果是個List。如果想知道更多的用法可以到dialog模組,取得更多的資訊。
fs模組用起來和node.js是一樣的,開啟的範例如下
fs.readFile("c:\test.txt",function(err,dataBuf){ if(err){ console.log("readFile error:" + err); return; } // });
開啟後會得到一個dataBuf,它是一個型別為Buffer的資料,要注意的是Buffer並不是javascript定義的型別,它是node.js定義的,要得到更多的資訊請到Buffer。這個方法是用binary的方法讀取檔案,如果要用文字的方式讀取範例如下
fs.readFile("c:\test.txt","utf-8",function(err,str){ if(err){ console.log("readFile error:" + err); return; } // });
用起來只須在參數多加一個"utf-8",接收資料的參數就會變成string。
參考資料
remote模組dialog模組
Buffer
沒有留言:
張貼留言