最近好久沒有寫過文章了潮饱,markdown感覺都不會用了,最近在寫Electron程序的時候遇到了一個問題括尸,順便記錄一下吧巷蚪,免得以后忘記了。
目前需要實現(xiàn)一個需求濒翻,點擊打開按鈕的時候需要打開文件瀏覽器屁柏,并且選中該文件。
Screenshot from 2017-07-06 18-19-36.png
在Electron中可以打開文件瀏覽器有送,官方Demo上也說明了:
Screenshot from 2017-07-06 18-21-44.png
但是淌喻,文檔中也說了,
If possible, select the file.
在三大平臺上測試雀摘,MacOS是可以打開文件瀏覽器并選中文件的裸删,但是,Linux和Win上并不行阵赠,照Electron的更新速度涯塔,沒準(zhǔn)兒后面的版本會實現(xiàn)這個功能也說不定。
既然官方API不行清蚀,那就得想辦法了匕荸,最終還是想到了一個,那就是在shell中調(diào)用系統(tǒng)的文件瀏覽器枷邪,并指定選中的文件榛搔,代碼如下:
在windows系統(tǒng)下
// for windows
let exec = require('child_process').exec;
exec('explorer.exe /select,"E:\\Demo\\test.txt"')
在linux系統(tǒng)下
// for linux (Ubuntu)
let exec = require('child_process').exec;
let filepath = '/home/xxx/Downloads/test.txt'
let cmd = 'nautilus -s ' + filepath
exec(cmd, function (error, stdout, stderr) {
if (error) {
// 有可能沒有安裝nautilus,這時直接調(diào)用系統(tǒng)的API來打開文件瀏覽器
require('electron').shell.showItemInFolder(filepath)
}
});
上面方法雖然有點茍且东揣,但是可以解決這個問題药薯,當(dāng)然,還是希望Electron官方能夠盡快的實現(xiàn)這個功能救斑!