我們可以很輕鬆地使用原生的 Node.js API 來完成存取本機檔案的功能。這讓我們在插件系統中完成這樣的任務變得更加容易。
fs
利用 Node.js 的 fs的一系列方法來完成本機檔案存取,對本機檔案系統進行操作。例如,可以使用 fs.readFile() 方法來讀取檔案內容,使用 fs.writeFile() 方法來寫入檔案。這裏是一個範例:
fs.readFile()
fs.writeFile()
const fs = require('fs'); // 讀取檔案 fs.readFile('/path/to/file', (err, data) => { if (err) throw err; console.log(data); }); // 寫入檔案 fs.writeFile('/path/to/file', 'hello world', (err) => { if (err) throw err; console.log('done'); });
這些方法都是非同步的,所以它們不會阻塞 UI,從而可以保證應用的高效能。另外,fs 模組還提供了一些其他有用的方法,例如可以用 fs.stat() 方法來取得檔案的大小、新增時間等資訊,也可以用 fs.rename() 方法來重新命名檔案。透過使用 fs 模組,我們可以很方便地存取本機檔案。
fs.stat()
fs.rename()
🦄 最佳實踐: 儘可能不要使用 Node.js 裏面的 sync 方法,這些方法會導致 UI 執行緒阻塞,從而導致使用者介面卡頓,使用者體驗極差。此外,使用非同步方法能夠提高程式的執行效率,因為它不會阻塞程式的執行,可以同時處理多個任務。
Eagle Plugin API 提供了一個 dialog 模組,可以用來新增原生系統對話框,進行檔案儲存及選取。這裏有耶些範例:
dialog
範例一:彈出檔案選擇對話框
範例二:彈出儲存對話框
如果你需要更詳細的介紹,可以參考 dialog 模組。
Last updated 7 months ago
let result = await eagle.dialog.showOpenDialog({ properties: ['openFile', 'openDirectory'] });
let result = await eagle.dialog.showSaveDialog({ properties: ['openDirectory'] });