欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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");
相关标签: node