什么是追加到path的正确方法?
我接受一个path作为我的一个脚本的命令行参数。 有两件事我想做。 首先是我想确认path在目录中传递。 我想要做的第二件事是附加到子目录名称的path(我知道提前的子目录名称)。 如果库中没有任何函数会自动添加尾随/
字符到缺less的path中,还是必须手动检查?
例如,如果/User/local
被传递,那么我必须将/bin
添加到path中,而如果path/User/local/
被传递,我必须添加bin
。
谢谢您的帮助。
看来你只是想要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
var tail = 'bin/test/', path = arg[arg.length-1] === '/' ? arg + tail : arg + '/' + tail;
或者我错过了什么? 🙂
你可以把逻辑放到一个简短的函数中,确保两部分之间只有一个“/”:
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"
。