0
我在Node.js中创建一个cmd程序,它接收用户输入,其中一个输入是文件夹。用户输入Node.js文件/文件夹自动完成
现在我想让用户更容易选择一个文件夹(比如使用'cd'等命令时文件的cmd autocompletion),而不是实际输入整个路径。
有没有这样做的最佳做法?
在此先感谢!
我在Node.js中创建一个cmd程序,它接收用户输入,其中一个输入是文件夹。用户输入Node.js文件/文件夹自动完成
现在我想让用户更容易选择一个文件夹(比如使用'cd'等命令时文件的cmd autocompletion),而不是实际输入整个路径。
有没有这样做的最佳做法?
在此先感谢!
好了,看什么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
});
非常感谢,你真是帮了:) – user3467713