【问题标题】:Node.js file/folder auto completion on user inputNode.js 文件/文件夹在用户输入时自动完成
【发布时间】:2017-02-13 05:46:03
【问题描述】:

我正在 Node.js 中创建一个接收用户输入的 cmd 程序,其中一个输入是文件夹。

现在我想让用户更轻松地选择文件夹(例如使用“cd”等命令时文件的 cmd 自动补全),而不是实际键入整个路径。

有没有这样做的最佳实践?

提前致谢!

【问题讨论】:

    标签: node.js cmd


    【解决方案1】:

    【讨论】:

    • 非常感谢,你真的帮了大忙 :)
    【解决方案2】:

    好的,所以看了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
    });
    

    【讨论】:

      猜你喜欢
      • 2011-10-03
      • 2012-11-14
      • 2020-12-14
      • 1970-01-01
      • 1970-01-01
      • 2012-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多