Electron中打开文件浏览器并选中指定的文件

2017-07-06  本文已影响742人  路过麦田

最近好久没有写过文章了,markdown感觉都不会用了,最近在写Electron程序的时候遇到了一个问题,顺便记录一下吧,免得以后忘记了。

目前需要实现一个需求,点击打开按钮的时候需要打开文件浏览器,并且选中该文件。

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的更新速度,没准儿后面的版本会实现这个功能也说不定。

既然官方API不行,那就得想办法了,最终还是想到了一个,那就是在shell中调用系统的文件浏览器,并指定选中的文件,代码如下:

在windows系统下

// for windows
let exec = require('child_process').exec;
exec('explorer.exe /select,"E:\\Demo\\test.txt"')

在linux系统下

// 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,这时直接调用系统的API来打开文件浏览器
      require('electron').shell.showItemInFolder(filepath)
  }
});

上面方法虽然有点苟且,但是可以解决这个问题,当然,还是希望Electron官方能够尽快的实现这个功能!

上一篇 下一篇

猜你喜欢

热点阅读