如何在節點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' –