美文网首页
递归打印目录树

递归打印目录树

作者: 不要和我名字一样 | 来源:发表于2017-06-07 21:27 被阅读61次
    // 递归目录树
    const fs = require('fs');
    const path = require('path');
    
    // 获取当前有没有传入目标路径
    var target = path.join(__dirname, process.argv[2] || './');
    
    function load(target, depth) {
      // depth  0 = ''
      // depth  1 = '│ '
      // depth  2 = '│ │ '
      var prefix = new Array(depth + 1).join('│ ');
    
      var dirinfos = fs.readdirSync(target);
    
      var dirs = [];
      var files = [];
    
      dirinfos.forEach(info=> {
        var stats = fs.statSync(path.join(target, info));
        if (stats.isFile()) {
          files.push(info);
        } else {
          dirs.push(info);
        }
      });
    
      dirs.forEach(dir=> {
        console.log(`${prefix}├─${dir}`); // node_modules
        // 当前是一个目录 需要深入进去
        load(path.join(target, dir), depth + 1);
      });
    
      var count = files.length - 1;
      files.forEach(file=> {
        var temp = count-- ? '├' : '└';
        console.log(`${prefix}${temp}─${file}`);
      });
    }
    
    
    load(target, 0);
    

    相关文章

      网友评论

          本文标题:递归打印目录树

          本文链接:https://www.haomeiwen.com/subject/bksafxtx.html