最近做项目使用fs.rmdirSync 删除目录时,返回了如下错误:
“ENOTEMPTY: directory not empty, rmdir
‘D:/develop/file/admin-node/unzip/099407032d622b2f3f2d8fb49bde62d4’”
解决办法:
写了一个删除的方法如下:
static deleteFolderRecursive (url){
var files = [];
/**
* 判断给定的路径是否存在
*/
if (fs.existsSync(url)) {
/**
* 返回文件和子目录的数组
*/
files = fs.readdirSync(url);
files.forEach(function (file, index) {
var curPath = path.join(url, file);
/**
* fs.statSync同步读取文件夹文件,如果是文件夹,在重复触发函数
*/
if (fs.statSync(curPath).isDirectory()) { // recurse
Book.deleteFolderRecursive(curPath);
} else {
fs.unlinkSync(curPath);
}
});