ノードのWebkitアプリケーションでディレクトリの絶対パス(現在の作業ディレクトリではありません)を取得するにはどうすればよいですか?ノードWebkitのディレクトリのフルパスを取得
例 - Documents
にA
という名前のフォルダを作成しました。私は、ファイルシステムのディレクトリエントリでgetDirectory
を行うと、私はA
app.workspace.getDirectory(self.folderpath, {}, function(dir){
if(dir) console.log('Dir: ', dir);
});
を返すdir.fullPath
を得ることができますしかし、私は必要があります:~/Documents/A/
を|| c:\Users\Username\Documents
私のアプリのユーザーは、いつでも好きな場所でディレクトリを選択/作成し、そのフォルダのデータを保存/読み込むことができます。
絶対パスは、私は必要なものではないかもしれないが、私は、デフォルトのデスクトップアプリケーションとファイル(PDF、DOCを...)開きたい:私はthequestionを理解してきたわからない
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);
});
あなたはそれを理解していません:)スクリプトのディレクトリと私がアクセスしたいフォルダは別です。どちらもどこでもかまいません。スクリプトは明らかにアプリケーションパッケージから実行されています。アプリケーションパッケージは、理想的にはアプリケーションフォルダにあり、他のディレクトリは自由選択です。ユーザーは自分のマシン上の任意のフォルダを選択できます。私が本当にしたいのは、ユーザーのデフォルトアプリケーションを使って開いているドキュメントですが、私はexecでこれを行う方法を見つけましたが、シェルスクリプトはルートから実行されています... –
申し訳ありません。そして、あなたが推測するどこかでユーザーが選択したフォルダを保存することはできません。 – filippo
完全なURLではありません。サンドボックス化されていません。私は '〜/ Documents/Myfolder'に自分のフォルダを作成しました。'/Myfolder'だけを返すことができます –