在 Node.js 和 node-webkit 中打开目录
Open Directory in Node.js and node-webkit
我有一个函数可以在目录创建后打开它,
setTimeout(function()
{
var fs = require('fs');
console.log(newPath);
var open = fs.opensync(newPath, 'r');
}, 2500);
但这似乎不起作用。我收到以下错误
首先是,
TypeError: undefined is not a function
at eval (eval at <anonymous>
(file:///Users/proslav/Library/Developer/Xcode/DerivedData/trackingCore-ecxfviftqracjxhimcuhhhvyddso/Build/Products/Debug/trackingCore.app/Contents/Resources/timeBroFront.app/Contents/Resources/app.nw/js/jquery-1.10.2.min.js:3:4994), :43:18)
第二个是,
Uncaught ReferenceError: require is not defined
我在想可能是我的变量 newpath
未定义,但日志显示正确 link。
使用 var fs = require('fs');
创建目录效果很好。
我在这里做错了什么?
我发现了必须如何完成。 Node-webkit 为此提供了一个功能。它正在 MAC 上工作,也应该在 windows 上工作。
下面的函数是一个示例函数。 nw.gui
和 gui.Shell.showItemInFolder
为我做了这件事。感谢输入。
/*---------
Open Folder
---------*/
function openFolder(path){
var gui = require('nw.gui');
gui.Shell.showItemInFolder(path);
}
在 nw.js 版本 0.13 或更高版本中,使用:
nw.Shell.showItemInFolder(fullpath);
版本 < 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 模块时出错),我创建了具有以下内容的节点模块 (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);
}
我有一个函数可以在目录创建后打开它,
setTimeout(function()
{
var fs = require('fs');
console.log(newPath);
var open = fs.opensync(newPath, 'r');
}, 2500);
但这似乎不起作用。我收到以下错误
首先是,
TypeError: undefined is not a function at eval (eval at
<anonymous>
(file:///Users/proslav/Library/Developer/Xcode/DerivedData/trackingCore-ecxfviftqracjxhimcuhhhvyddso/Build/Products/Debug/trackingCore.app/Contents/Resources/timeBroFront.app/Contents/Resources/app.nw/js/jquery-1.10.2.min.js:3:4994), :43:18)
第二个是,
Uncaught ReferenceError: require is not defined
我在想可能是我的变量 newpath
未定义,但日志显示正确 link。
使用 var fs = require('fs');
创建目录效果很好。
我在这里做错了什么?
我发现了必须如何完成。 Node-webkit 为此提供了一个功能。它正在 MAC 上工作,也应该在 windows 上工作。
下面的函数是一个示例函数。 nw.gui
和 gui.Shell.showItemInFolder
为我做了这件事。感谢输入。
/*---------
Open Folder
---------*/
function openFolder(path){
var gui = require('nw.gui');
gui.Shell.showItemInFolder(path);
}
在 nw.js 版本 0.13 或更高版本中,使用:
nw.Shell.showItemInFolder(fullpath);
版本 < 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 模块时出错),我创建了具有以下内容的节点模块 (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);
}