node中实现删除目录的几种方法

2020-06-17 06:06:46易采站长站整理

if (err) reject(err)
resolve()
})
} else {
fs.readdir(filePath, function (err, dirs) {
if (err) reject(err)
dirs = dirs.map(dir => path.join(filePath, dir))
dirs = dirs.map(dir => rmdirPromise(dir))
Promise.all(dirs).then(() => {
fs.rmdir(filePath, resolve)
})
})
}
})
})
}

rmdirPromise('a').then(() => {
console.log('删除成功')
})

深度先序 (并行 async + await写法)


const fs = require('fs').promises
const path = require('path')
async function rmdirAsync(filePath) {
let stat = await fs.stat(filePath)
if(stat.isFile()) {
await fs.unlink(filePath)
}else {
let dirs = await fs.readdir(filePath)
dirs = dirs.map(dir => rmdirAsync(path.join(filePath, dir)))
await Promise.all(dirs)
await fs.rmdir(filePath)
}
}

rmdirAsync('a').then(() => {
console.log('删除成功')
})