追加到路径的正确方法是什么?

时间:2013-02-13 00:08:28

标签: javascript node.js

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

例如,如果传递/User/local,那么我必须将/bin添加到路径中,而如果路径bin通过则必须添加/User/local/

感谢您的帮助。

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

var tail = 'bin/test/',
    path = arg[arg.length-1] === '/' ? arg + tail : arg + '/' + tail;

或者我错过了什么? :)

答案 2 :(得分: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"