美文网首页
Electron中打开文件浏览器并选中指定的文件

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

作者: 路过麦田 | 来源:发表于2017-07-06 18:39 被阅读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官方能够尽快的实现这个功能!

    相关文章

      网友评论

          本文标题:Electron中打开文件浏览器并选中指定的文件

          本文链接:https://www.haomeiwen.com/subject/djvfhxtx.html