2

我接受目录路径作为我的一个脚本的命令行参数。我想做两件事。首先是我想确认在目录中传递的路径。我想做的第二件事是附加到带有子目录名称的路径(我提前知道子目录名称)。库中是否有任何函数会/在路径丢失时自动将尾随字符添加到路径中,还是我必须手动检查?

例如,如果/User/local通过了,那么我必须添加/bin到路径中,而bin如果路径/User/local/通过了,我必须添加。

谢谢您的帮助。

4

3 回答 3

3

似乎您只想要path.joinfs.existsSyncfs.statSync

var path = require('path');
var fs = require('fs');

var dir = process.argv[2];

console.log(dir);
console.log(fs.existsSync(dir) && fs.statSync(dir).isDirectory());
console.log(path.join(dir, 'mysubdir'));

因此,如果我像这样运行上述内容:node test.js /tmp我将得到:

/tmp
true
/tmp/mysubdir
于 2013-02-13T00:59:29.327 回答
0

您可以将逻辑放入一个简短的函数中,以确保两个部分之间只有一个“/”:

function appendToPath(orig, add) {
    return orig.replace(/\/$/, "") + "/" + add.replace(/^\//, "");
}

var newPath = appendToPath("/User/local", "bin");

或者

var newPath = appendToPath("/User/local/", "/bin");

或者

var newPath = appendToPath("/User/local", "/bin");

他们都回来了"/User/local/bin"

于 2013-02-13T01:03:22.190 回答
0
var tail = 'bin/test/',
    path = arg[arg.length-1] === '/' ? arg + tail : arg + '/' + tail;

或者我错过了什么?:)

于 2013-02-13T00:15:14.540 回答