我在Node.js中创建一个接收用户输入的cmd程序,其中一个输入是一个文件夹。
现在我想让用户更容易选择一个文件夹(比如使用诸如'cd'之类的命令时文件的cmd自动完成),而不是实际输入整个路径。
这样做有什么最好的做法吗?
提前致谢!
答案 0 :(得分:1)
我之前看到有人在cofmon
实施了这项工作。所以这些链接可以提供帮助:
答案 1 :(得分:0)
好的,所以在看了一下jiyinyiyong回答后,我能够得到我想要的东西。
基本上就是这样:
var readline = require('readline');
var fs = require('fs');
function completer(line) {
var currAddedDir = (line.indexOf('/') != - 1) ? line.substring(0, line.lastIndexOf('/') + 1) : '';
var currAddingDir = line.substr(line.lastIndexOf('/') + 1);
var path = __dirname + '/' + currAddedDir;
var completions = fs.readdirSync(path);
var hits = completions.filter(function(c) { return c.indexOf(currAddingDir) === 0});
var strike = [];
if (hits.length === 1) strike.push(currAddedPath + hits[0] + '/');
return (strike.length) ? [strike, line] : [hits.length ? hits : completions, line];
}
var rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
completer: completer
});
rl.question('whatever', function(answer) {
// Do what ever
});