在Node.js和node-webkit中打开目录

时间:2015-07-06 10:00:18

标签: javascript node.js node-webkit

我有一个应该在创建目录后打开目录的函数

char

但这似乎不起作用。我收到以下错误

首先是,

  

TypeError:undefined不是函数       at eval(eval at setTimeout(function() { var fs = require('fs'); console.log(newPath); var open = fs.opensync(newPath, 'r'); }, 2500); (file:///Users/proslav/Library/Developer/Xcode/DerivedData/trackingCore-ecxfviftqracjxhimcuhhhvyddso/Build/Products/Debug/trackingCore.app/Contents/Resources/timeBroFront.app/目录/资源/ app.nw / js / jquery-1.10.2.min.js:3:4994),:43:18)

,第二是,

  

未捕获的ReferenceError:未定义require

我原以为可能是我的变量<anonymous>未定,但日志显示我正确的链接。 使用newpath创建目录工作正常。

我在这里做错了什么?

2 个答案:

答案 0 :(得分:5)

我发现了它是如何完成的。 Node-webkit为此提供了一个功能。它正在研究MAC,也应该在Windows上运行。 以下功能是一个示例功能。 nw.guigui.Shell.showItemInFolder为我做了这件事。输入的Thx。

/*---------
Open Folder
---------*/
function openFolder(path){
    var gui = require('nw.gui');
    gui.Shell.showItemInFolder(path);
}

答案 1 :(得分:1)

在nw.js版本0.13或更高版本中,使用:

nw.Shell.showItemInFolder(fullpath);

版本&lt; 0.13:

var gui = require('nw.gui');
gui.Shell.showItemInFolder(fullpath);

请注意,需要完整路径名。如果它不存在,它将无声地失败。

如果路径类似于 c:\ foo \ bar.txt ,则会打开文件夹 foo 并突出显示文件 bar.txt

如果路径为 c:\ foo \ foo2 ,则会打开文件夹 foo 并突出显示文件夹 foo2 (我预计它打开文件夹 foo2 ,但它会打开父级。)

要查找正在运行的应用的完整路径,因为我们无法在前端使用节点功能(这就是为什么您尝试加载fs模块时出现错误的原因),我&#39;我创建了一个节点模块(utils.js),其中包含以下内容:

exports.getFullPath = function(fileName) {
    var path = require('path');
    return path.resolve(__dirname, fileName);
}

在前端:

function openFolder(path) {
    var utils = require('./utils');
    var fullpath = utils.getFullPath(path);
    nw.Shell.showItemInFolder(fullpath);
}