const fs = require('fs')
const { rmdirSync } = require('node:fs')
const path = require('path')

Unlinksync Delete folder fs.rmdirsnc
Fs.statysync (isFile,isDirectory) check whether it is a file
// Delete data synchronously

// function rmdirSync(dir){
// let statobj = fs.statSync(dir)
// if(statobj.isDirectory()){
// let dirs = fs.readFileSync(dir)
// dirs = dirs.map( d => path.join(dir,d))
// dirs.forEach(d => {
// rmdirSync(d)
/ /})
// }else{
// fs.unlinkSync(dir)
/ /}
// }

// asynchronous serial deletion
// function rmdir(dir,cb){
// fs.stat(dir,(err,statObj) =>{
// if(statObj.isDirectory()){
// fs.readdir(dir,(err,dirs) => {
// dirs = dirs.map(item => path.join(dir,item))
// let index = 0
// function next(){
// if(index === dirs.length) return fs.rmdir(dir,cb)
// let current = dirs[index++]
// rmdir(current,next)
/ /}
// next()
/ /})
// }else{
// fs.unlink(dir,cb)
/ /}
/ /})
// }



function rmdir(dir,cb){
        fs.stat(dir,(err,statObj) = >{
        if(statObj.isDirectory()){
            fs.readdir(dir,(err,dirs) = > {
                dirs = dirs.map(item= > path.join(dir,item))
                if(dirs.length == 0) {return fs.rmdir(dir,cb)
                }
                let index = 0
                function done(){
                    if(++index == dirs.length){
                        fs.rmdir(dir,cb)
                    }
                }
                for (let i = 0; i < dirs.length; i++) {
                    let dir = dirs[i]
                    rmdir(dir,done)
                }
            })
        }else{
            fs.unlink(dir,cb)
        }
    })
}

Copy the code