我接受一个目录路径作为我的一个脚本的命令行参数。我想做两件事。首先是我想确认在目录中传递的路径。我想要做的第二件事是附加到子目录名称的路径(我提前知道子目录名称)。库中是否有任何函数会自动将路径/
字符添加到路径中(如果缺少),或者我是否必须手动检查?
例如,如果传递/User/local
,那么我必须将/bin
添加到路径中,而如果路径bin
通过则必须添加/User/local/
。
感谢您的帮助。
答案 0 :(得分:3)
您似乎只想要path.join,fs.existsSync和fs.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"
。