node小案例分享
程序员文章站
2022-03-03 17:49:00
...
写一个模块,打印当前的目录树
分析:读取目录 目录有文件,有文件夹,区分文件或者文件夹,文件的话直接打印,文件夹继续读取目录
const fs=require("fs");
const path=require("path");
let target=path.join(__dirname,"./");
function loadTree(target,deep){
let prev=new Array(deep).join(" |");
let files=[];
let dirs=[];
let dirinfo=fs.readdirSync(target);
for(let item=0;item<dirinfo.length;item++){
let state=fs.statSync(path.join(target,dirinfo[item]));
if(state.isFile()){
files.push(dirinfo[item]);
}else if(state.isDirectory){
dirs.push(dirinfo[item]);
}
}
for(let dir=0;dir<dirs.length;dir--){
console.log(`${prev}|——${dirs[dir]}`);
let nextPath=path.join(target,dirs[dir]);
let nextdeep=deep+1;
loadTree(nextPath,nextdeep);
}
for(let file=files.length-1;file>=0;file--){
if(file===0){
console.log(`${prev} └─${files[file]}`);
}else{
console.log(`${prev} ├─${files[file]}`);
}
}
}
loadTree(target,1);
写一个方法,可以删除一个文件夹
const fs=require("fs");
const path=require("path");
function deletePath(dir){
if(!~fs.existsSync(dir))return;
var dirs=fs.readdirSync(dir);
dirs.forEach(function(file){
var nowPath=path.join(dir,file);
if(fs.statSync(nowPath).isDirectory()){
deletePath(nowPath);
}else{
fs.unlinkSync(nowPath);
}
});
fs.rmdirSync(dir);
}
deletePath("./a");