2017-02-13 65 views
0

我在Node.js中创建一个cmd程序,它接收用户输入,其中一个输入是文件夹。用户输入Node.js文件/文件夹自动完成

现在我想让用户更容易选择一个文件夹(比如使用'cd'等命令时文件的cmd autocompletion),而不是实际输入整个路径。

有没有这样做的最佳做法?

在此先感谢!

回答

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 
}); 
相关问题