node实现 删除某目录下所有同名文件夹及其子文件内容


相关命令:

● fs.stat && fs.statSync 提供了访问文件的属性信息
● fs.readdir && fs.readdirSync 提供了读取文件目录信息
● fs.unlink && fs.unlinkSync 进行删除文件操作, 不可以删除文件夹
● fs.rmdir && fs.rmdirSync 进行删除文件操作,但文件夹必须为空

 

代码实现:

 file.js

 1 var fs = require('fs');
 2 //当前配置项
 3 const currentDir = '../abcd';  //所选择的目录
 4 const NeedDeleteDir = '.svn';  //需要删除的文件夹包括文件夹下的内容
 5 
 6 console.info("当前目录:", fs.realpathSync(currentDir))
 7 console.log("starting delect path, please wait .......");
 8 
 9 //读取所有该目录下的文件。
10 const ReadDir = function(path){
11     if(fs.existsSync(path)){  //检测路径是否存在
12         fs.readdir(path,function(err, files){ //读取路径
13             if(err) return console.log("ERROR-ReadDir:", err);
14             
15             files.forEach(function(file){
16                 if(file === NeedDeleteDir){  //匹配路径
17                     console.log('Current File:',path, file);
18                     opetateDir(path + '/' + file);
19                 }else if(fs.statSync(path + '/' + file).isDirectory()){  //检测路径是否是文件夹
20                     ReadDir(path + '/' + file); //递归子文件夹
21                 }
22             })
23         })
24     }
25 }
26 
27 //删除文件及文件夹
28 const opetateDir = function(path){
29     var files = [];
30     if(fs.existsSync(path)){ //检测路径是否存在
31         files = fs.readdirSync(path); //读取路径
32         files.forEach(function(file){
33             let curDir = path + '/' + file;
34             let stats = fs.statSync(curDir); 
35             if(stats.isDirectory()){ //检测路径是否是文件夹
36                 opetateDir(curDir); //递归子文件夹
37             }else{
38                 fs.unlinkSync(curDir);  //删除文件
39             }
40             
41         });
42         fs.rmdirSync(path);  //删除文件夹
43         console.log("SUCCESS RM Dir!", path);
44     }
45 }
46 
47 //开始执行
48 ReadDir(currentDir);

 

 

使用方式: 放在相应目录下 执行 node file.js

posted @ 2017-10-12 17:06  dandan888  阅读(977)  评论(0编辑  收藏  举报