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