NodeJS遍历文件生产文件列表功能示例

  

本文实例讲述了NodeJS遍历文件生产文件列表功能。分享给大家供大家参考,具体如下:

  

功能需求:在工作中我们可能经常需要知道项目中静态文件列表发布,一个一个去检索写,那就太苦逼了。

  

 NodeJS遍历文件生产文件列表功能示例

  

要想知道里面的文件列表是不是很蛋疼,可能我们也会有dos树去获取。

  

这里分享一下,通过节点,知道文件路径,并配置远程路径,直接复制、发布。

  

新建文件列表。js里面都有注释,我就不哆嗦了。

        var fs=要求(fs);//路径模块,可以生产相对和绝对路径   var=路径要求(“路径”);//配置远程路径   var remotePath="/资源/fd/升级/201507/七夕节”;//获取当前目录绝对路径,这里解决()不传入参数   var filePath=path.resolve ();//读取文件存储数组   var fileArr=[];//读取文件目录   fs.readdir (filePath、功能(呃,文件){   如果(err) {   console.log(错);   返回;   }   var计算=files.length;//console.log(文件);   var结果={};   files.forEach(函数(文件名){//filePath + " +文件名不能用/直接连接,Unix系统是“/?Windows系统是“\”   fs.stat (path.join (filePath文件名)、功能(呃,统计){   如果(err)把犯错;//文件   如果(stats.isFile ()) {   如果(getdir(文件名)==癶tml”) {   var newUrl=remotePath +文件名;   fileArr.push (newUrl);   writeFile (fileArr);   }//(getdir(文件名)==癶tml”),和(fileArr.push(文件名);writeFile (newUrl));//控制台。日志文件(“% s”,文件名);   }else if (stats.isDirectory ()) {//控制台。日志(“% s是一个目录文件目录”,文件名);//返回指定文件名的扩展名称//console.log (path.extname (pp/index . html));   如果(文件名==癱ss”| |文件名=='图像'){//var readurl=filePath +‘/?文件名;//filePath + " +文件名不能用/直接连接,Unix系统是“/?Windows系统是“\”//console.log (path.join (filePath文件名));   var的名字=文件名;   readFile (path.join (filePath文件名),名称);   }   }   });   });   });//获取后缀名   函数getdir (url) {   var arr=url.split ('。');   var len=arr.length;   返回arr [len-1];   }//获取文件数组   readFile函数(readurl名称){   console.log(名称);   var name=名称;   fs.readdir (readurl、功能(呃,文件){   如果(err) {console.log (err);回归;}   files.forEach(函数(文件名){//console.log (path.join (readurl文件名));   fs.stat (path.join (readurl文件名)、功能(呃,统计){   如果(err)把犯错;//是文件   如果(stats.isFile ()) {   var newUrl=remotePath +名称+‘/?文件名;   fileArr.push (newUrl);   writeFile (fileArr)//是子目录   }else if (stats.isDirectory ()) {   var目录名=文件名;   readFile (path.join (readurl文件名),名字+‘/?目录名);//利用arguments.callee (path.join())这种形式利用自身函数,会报的错//arguments.callee (path.join (readurl文件名),名字+‘/?目录名);   }   });   });   });   }//写入到filelisttxt文件   函数writeFile(数据){   var data=https://www.yisu.com/zixun/data.join (“\ n”);   fs.writeFile (filePath +“/?“filelist.txt”+“\ n”数据,函数(err) {   如果(err)把犯错;   console.log(“写入成功”);   });   }      之前      

当我们执行

        节点flielist.js      之前      

就会生产filelist.txt,文件里面就包含了我们想要的路径。

  

 NodeJS遍历文件生产文件列表功能示例

  

有时,我们通常遇到删除不了的文件,由于文件纵深太长导致rm _rf也删不了,但是我们通过nodejs可以办到:

        var fs=要求(fs);   var=路径要求(“路径”);   deleteFolderRecursive=function (url) {   var文件=[];//判断给定的路径是否存在   如果(fs.existsSync (url)) {//返回文件和子目录的数组   文件=fs.readdirSync (url);   files.forEach(函数(文件、索引){//var curPath=url + " +文件;   var curPath=path.join (url、文件);//fs.statSync同步读取文件夹文件,如果是文件夹,在重复触发函数   如果(fs.statSync curPath .isDirectory()){//递归   deleteFolderRecursive (curPath);//是文件删除文件   其他}{   fs.unlinkSync (curPath);   }   });   fs.rmdirSync (url);   其他}{   console.log(“给定的路径不存在,请给出正确的路径”);   }   };   deleteFolderRecursive(“。/繁重”);      

NodeJS遍历文件生产文件列表功能示例