在node-webkit中使用默认程序打开一个文件

Inv*_*orn 7 javascript linux windows node.js node-webkit

我想给用户任何他想要编辑文件的选项,如何使用特定文件类型的默认程序打开文件?我需要它与Windows和Linux一起使用,但Mac选项也很棒.

Kha*_*lid 11

正如PSkocik所说,首先检测平台并获取命令行:

function getCommandLine() {
   switch (process.platform) { 
      case 'darwin' : return 'open';
      case 'win32' : return 'start';
      case 'win64' : return 'start';
      default : return 'xdg-open';
   }
}
Run Code Online (Sandbox Code Playgroud)

第二步,执行命令行,然后执行路径

var sys = require('sys');
var exec = require('child_process').exec;

exec(getCommandLine() + ' ' + filePath);
Run Code Online (Sandbox Code Playgroud)


Phi*_*ief 6

您可以使用开放模块:

npm install --save open
Run Code Online (Sandbox Code Playgroud)

然后在你的 Node.js 文件中调用它:

npm install --save open
Run Code Online (Sandbox Code Playgroud)

该模块已经包含检测操作系统的逻辑,它运行与您的系统相关联的默认程序。


Pav*_*eev 5

对于磁盘上的文件:

var nwGui = require('nw.gui');
nwGui.Shell.openItem("/path/to/my/file");
Run Code Online (Sandbox Code Playgroud)

对于远程文件(例如网页):

var nwGui = require('nw.gui');
nwGui.Shell.openExternal("http://google.com/");
Run Code Online (Sandbox Code Playgroud)