nodejs删除非空文件夹
###如何能使用nodejs原生的方法而不通过系统命令删除非空文件夹。 难到只能自己写递归删除?
13 回复
写个递归,还不简单,再封装成模块。 要用的时候,直接导入->调用。
fs.rmdir(path, callback)
fs.rmdirSync(path)
注意: 其实只是用来删空目录的
Warning: ENOTEMPTY, directory not empty ‘dist/images’ Use --force to continue.
简单,就是效率不高
昨天我也遇到了这个问题。。。。只能自己写递归了。。参考司徒正美的博客也可以 http://www.cnblogs.com/rubylouvre/archive/2011/11/28/2264717.html
你们说得太复杂了
rm -rf directorytodelete 子进程执行这个命令就可以了,何必那么的累呢
请看原帖标题。
@bnuhero 我的,然后再问一下为什么要这样删除 我敢说自己递归删除绝对不如系统命令快
const fs=require("fs");
const co=require("zco");
let deleteDir=function(dir){
return co(function *(next) {
let [err,stat]=yield fs.stat(dir,next);
if(err){
return ;
}
if(stat.isFile()){
yield fs.unlink(dir,next);
return;
}
let [err1,list]=yield fs.readdir(dir,next);
for(let i=0;i<list.length;i++){
yield deleteDir(dir+"/"+list[i])(next);
}
yield fs.rmdir(dir,next);
return ;
})
}
为何不用fs-extra?
子进程完美解决~~
都不看内容。。
都不看前面的回复的么… https://www.npmjs.org/package/rimraf 这个模块就 ok 了