├─ hw
│ ├─dirtree.js
│ └─ test.js
├─test.js
└─ url.js
首先创建出来的样子大概是这个样子,在这里我们先来整理下目录树的思路
获取目标文件夹的目录内容
将文件或者文件夹进行划分
将文件或者文件夹进行打印,命令行console.log()
文件夹再次遍历 deep1 ├─ deep2 │ ├─ deep3│ │ ├─
打印当前目录树
//引入
const fs=require('fs');
const path=require('path');
//目标目录
let target=path.join(__dirname,'../../')
//用function
function loadTree(target,deep){
let prev=new Array(deep).join(' |')
// 前面 | 字符串
let dirinfo=fs.readdirSync(target);
let files=[];
let dirs=[];
//保存文件或者文件夹
//接着开始遍历文件或者文件夹分开存贮
for(let i =0;i<dirinfo.length;i++){
let state=fs.statSync(path.join(target,dirinfo[i]))
if (state.isFile()){
files.puth(dirinfo[i])
}else{
dirs.puth(dirinfo[i])
}
}
//文件操作
for (let i=0;i<dirs.length;i++){
console.log(`${prev} ├─ ${dirs[i]}`)
//递归
let nextPath =path.join(target,dirs[i])
let nextdeep=deep+1
//下一级的 文件目录 以及层级
loadTree(nextPath,nextdeep)
//递归调用
}
// 文件操作
for (let i =files.length-1;i>=0;i--){
if(i===0){
console.log(`${prev} └─ ${files[i]}`)
}else{
console.log(`${prev} ├─ ${files[i]}`)
}
}
}
loadTree(target,1)
// deep 样式
// 1 "├─"
// 2 "| ├─"
// 3 "| | ├─"
// let str=new Array(1).join('| ')
// console.log(str)