目录树
1 const fs = require("fs"); 2 const path = require("path"); 3 function tree(target,deep) { // target:当前文件的绝对路径 deep:层级 4 let prev = new Array(deep).join("┃"); 5 let infos = fs.readdirSync(target); // 读取当前文件目录 6 let files = []; // 创建一个数组 用来存放文件 7 let dirs = []; // 创建一个数组 用来存放文件夹 8 9 infos.forEach(item =>{ // 遍历获取到的当前文件 10 let tmpdir = path.join(target,item); //拼接文件的绝对路径 11 let stat = fs.statSync(tmpdir); // 获取文件的状态 12 if(stat.isFile()){ // 如果是一个文件 13 files.push(item); // 存放在files数组中 14 }else{ // 如果不是一个文件 15 dirs.push(item); // 存放在dirs数组中 16 } 17 }); 18 19 dirs.forEach(item => { // 遍历dirs数组 打印文件夹并递归 20 console.log(`${prev}├─ ${item}`); 21 let nexttarget = path.join(target,item); // 拼接文件夹的绝对路径 目的:以当前文件夹为目录 22 let nextdeep = deep + 1; 23 tree(nexttarget,nextdeep) // 再次调用tree函数 替换参数 24 }); 25 26 let count = files.length - 1; // 定义一个count 表示当前存放文件的数组长度-1 27 files.forEach(item => { // 遍历 files 数组 28 if(count--){ // 如果count不为 0 代表不是最后一个文件 29 console.log(`${prev}├─ ${item}`); 30 }else{ // 如果count为0 代表是最后一个文件 31 console.log(`${prev}└─ ${item}`); 32 } 33 }) 34 } 35 36 tree(__dirname,1);
刚刚学习了node
用node做了一个简易的目录树 欢迎各位批评指教