如何在节点webkit应用程序中获取目录(而不是当前工作目录)的绝对路径?获取节点webkit中目录的完整路径
示例(Mac OS) - 我在我的Documents
中创建了一个名为A
的文件夹。当我做getDirectory
与文件系统的目录项,我只能得到dir.fullPath
返回A
app.workspace.getDirectory(self.folderpath, {}, function(dir){
if(dir) console.log('Dir: ', dir);
});
但我需要:~/Documents/A/
|| c:\Users\Username\Documents
在我的应用程序中,用户可以选择/创建一个他们想要的目录,并且从该文件夹存储/读取数据。
绝对路径可能不是我所需要的,但我想用默认的桌面应用程序打开文件(PDF,DOC ...):
function getCommandLine() {
switch (process.platform) {
case 'darwin' : return 'open';
case 'win32' : return 'start';
case 'win64' : return 'start';
default : return 'xdg-open';
}
}
var exec = require('child_process').exec;
var filepath = '...';
//dir.fullPath will throw: The file /A/example.pdf does not exist.
var child = exec(getCommandLine() + ' ' + filepath, function (error, stdout, stderr) {
if (error) {
console.error(`exec error: ${error}`);
return;
}
});
child.on('close', function (e) {
console.log('E: ', e);
});
是的,你还没有明白它:)脚本的目录和我想要访问的文件夹是分开的。两者可以在任何地方。该脚本显然是从应用程序包运行的,理想情况下应该位于Applications文件夹中,而其他目录是自由选择的。用户可以选择他们机器上任何位置的任何文件夹。我真正想要做的是用用户的默认应用程序打开文档,我发现一个这样做与exec执行的方式,但外壳脚本运行从根... –
好的抱歉。而且你不能存储用户在某个地方选择的文件夹。 – filippo
不是完整的网址否 - 它是沙盒。我在我的'〜/ Documents/Myfolder'中创建了我的文件夹..我只能返回'/ Myfolder' –