CNode

nodejs删除非空文件夹

Ttarsean发布于12 年前最后回复9 年前13 回复32295 浏览0 收藏

###如何能使用nodejs原生的方法而不通过系统命令删除非空文件夹。 难到只能自己写递归删除?

查看回复

回复 (13)

H
hackerjs#1·12 年前

写个递归,还不简单,再封装成模块。 要用的时候,直接导入->调用。

Y
yaochun#2·12 年前

fs.rmdir(path, callback)

fs.rmdirSync(path)

注意: 其实只是用来删空目录的

Warning: ENOTEMPTY, directory not empty 'dist/images' Use --force to continue.

X
xiaobaicai#4·12 年前

昨天我也遇到了这个问题。。。。只能自己写递归了。。参考司徒正美的博客也可以 http://www.cnblogs.com/rubylouvre/archive/2011/11/28/2264717.html

C
chloe#6·12 年前
引用 chloe你们说得太复杂了 rm rf directorytodelete 子进程执行这个命令就可以了,何必那么的累呢

@bnuhero 我的,然后再问一下为什么要这样删除 我敢说自己递归删除绝对不如系统命令快

Y
yyrdl#7·9 年前
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 ;
    })
}
2
2linziyi2#8·9 年前

为何不用fs-extra?

C
chloe#9·12 年前

你们说得太复杂了

rm -rf directorytodelete 子进程执行这个命令就可以了,何必那么的累呢

N
nnliang#11·9 年前

子进程完美解决~~

都不看内容。。

A
atian25#13·9 年前

都不看前面的回复的么.. https://www.npmjs.org/package/rimraf 这个模块就 ok 了

参与回复
登录后即可参与回复。登录