nodejs文件夹深层复制功能


Posted in NodeJs onSeptember 03, 2019

前段时间接到领导要求,运营那边会时不时的给我一些.html文件,让我呢把里面的某些东西给解析出来插入到数据库。本来就是解析dom元素,然后插入,可是有点麻烦的是运营给我的文件都是多层级的:比如下面的:

nodejs文件夹深层复制功能

nodejs文件夹深层复制功能

我所需要是将运营给的文件夹中每个文件都复制到某个文件夹中(test),然后取test中所有文件进行解析。开始的时候本人崩着能吃苦耐劳的精神,每次都是复制粘贴,可是这是容易出错不说,关键我们是个程序员啊,就应该用程序员的方式来解决嘛。有些同志会说这很简单啊 找到'E:819数据819'这个文件夹,将它内部的每个文件夹读出来组成一个数组,在循环遍历里面的每个文件进行复制就可以了啊

fs.readdir('E:/819数据/819','utf-8',(err,fileList)=>{
  fileList.forEach((file,index)=>{
    let url = from+file+'/'
    fs.readdir(from+file,'utf-8',(error,singleFile)=>{
      singleFile.forEach((fileInner,i)=>{
        fs.writeFileSync(`${to}${name++}.html`, fs.readFileSync(url+fileInner));
      })
    })
  })
})

这就是上面的代码实现,开始我也是图省事就这样写了(把运营同事给的文件夹中所有文件复制到我的test目录中),可是mmp后来发现有的文件会有多重文件夹的嵌套

nodejs文件夹深层复制功能 

这时候就不能在一层的一层的判断了,万一运营给的嵌套10层,总不能为了每个文件夹的复制写一串代码吧,这里只能使用递归来解析了。

let name = 1
copyItDigui('E:/819数据/819','E:/test/');
function copyItDigui(from, to) {
searchFile(from, to);
}
function searchFile(from, to){
let stat = fs.lstatSync(from);
if(stat.isDirectory()){//判断是文件夹就继续下面的遍历,否则直接进行文件的复制和重名了
  fs.readdir(from,'utf-8',(err,fileList)=>{
    fileList.forEach((file,index)=>{
      searchFile(from+"/"+file,to)
    })
  })
}else{
  fs.writeFileSync(`${to}${name++}.html`, fs.readFileSync(from));//这里是执行文件的复制,下面的是大文件的复制
  //fs.writeFileSync(to, fs.readFileSync(from));
  //fs.createReadStream(src).pipe(fs.createWriteStream(dst));大文件复制
}
}

这里没有用ts来写,可能看上去有些凌乱,但是都写了注释,相信聪明的你一定看得懂。执行完代码后,复制就完成了,大功告成。

nodejs文件夹深层复制功能 

完全按照预想的结果,现在发现,即使我们是前端程序员,会点nodejs,还是蛮有用的,可以增强自己的成就感

总结

以上所述是小编给大家介绍的nodejs文件夹深层复制功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

NodeJs 相关文章推荐
基于promise.js实现nodejs的promises库
Jul 06 NodeJs
nodejs教程之入门
Nov 21 NodeJs
深入浅析NodeJs并发异步的回调处理
Dec 21 NodeJs
基于Nodejs利用socket.io实现多人聊天室
Feb 22 NodeJs
用nodeJS搭建本地文件服务器的几种方法小结
Mar 16 NodeJs
浅析 NodeJs 的几种文件路径
Jun 07 NodeJs
用nodejs实现json和jsonp服务的方法
Aug 25 NodeJs
NodeJS爬虫实例之糗事百科
Dec 14 NodeJs
NodeJs搭建本地服务器之使用手机访问的实例讲解
May 12 NodeJs
Nodejs使用Mongodb存储与提供后端CRD服务详解
Sep 04 NodeJs
Nodejs实现WebSocket代码实例
May 19 NodeJs
通过实例了解Nodejs模块系统及require机制
Jul 16 NodeJs
Nodejs中使用puppeteer控制浏览器中视频播放功能
Aug 26 #NodeJs
nodejs简单抓包工具使用详解
Aug 23 #NodeJs
nodejs使用node-xlsx生成excel的方法示例
Aug 22 #NodeJs
Nodejs libuv运行原理详解
Aug 21 #NodeJs
nodejs和react实现即时通讯简易聊天室功能
Aug 21 #NodeJs
Nodejs 识别图片类型的方法
Aug 15 #NodeJs
NodeJs实现简易WEB上传下载服务器
Aug 10 #NodeJs
You might like
BBS(php & mysql)完整版(五)
2006/10/09 PHP
php 用sock技术发送邮件的函数
2007/07/21 PHP
PHP 根据IP地址控制访问的代码
2010/04/22 PHP
浅析HTTP消息头网页缓存控制以及header常用指令介绍
2013/06/28 PHP
php获取数组长度的方法(有实例)
2013/10/27 PHP
ecshop适应在PHP7的修改方法解决报错的实现
2016/11/01 PHP
分享几种好用的PHP自定义加密函数(可逆/不可逆)
2020/09/15 PHP
JavaScript constructor和instanceof,JSOO中的一对欢喜冤家
2009/05/25 Javascript
JavaScript高级程序设计 阅读笔记(二十一) JavaScript中的XML
2012/09/14 Javascript
javascript解决innerText浏览器兼容问题思路代码
2013/05/17 Javascript
js判断鼠标左、中、右键哪个被点击的方法
2015/01/27 Javascript
Jquery实现仿腾讯娱乐频道焦点图(幻灯片)特效
2015/03/06 Javascript
Javascript中的call()方法介绍
2015/03/15 Javascript
jquery实现的缩略图预览滑块实例
2015/06/25 Javascript
JS实现的在线调色板实例(附demo源码下载)
2016/03/01 Javascript
好好了解一下Cookie(强烈推荐)
2016/06/14 Javascript
在web中js实现类似excel的表格控件
2016/09/01 Javascript
javascript 实现动态侧边栏实例详解
2016/11/11 Javascript
微信小程序(三):网络请求
2017/01/13 Javascript
javascript实现计算器功能
2020/03/30 Javascript
[01:52]深扒TI7聊天轮盘语音出处7
2017/05/11 DOTA
对python中的try、except、finally 执行顺序详解
2019/02/18 Python
Python缓存技术实现过程详解
2019/09/25 Python
Python如何爬取b站热门视频并导入Excel
2020/08/10 Python
英国最大的高品质珠宝和手表专家:Goldsmiths
2017/03/11 全球购物
C语言笔试集
2012/07/24 面试题
如果NULL和0作为空指针常数是等价的,那我到底该用哪一个
2014/09/16 面试题
Java Servlet API中forward() 与redirect()的区别
2014/04/20 面试题
校园报刊亭的创业计划书
2014/01/02 职场文书
迎八一活动主题
2014/01/31 职场文书
保护黄河倡议书
2014/05/16 职场文书
关于十八大的演讲稿
2014/09/15 职场文书
群众路线自我剖析材料
2014/10/08 职场文书
2014年小学教学工作总结
2014/11/13 职场文书
详解Python+OpenCV进行基础的图像操作
2022/02/15 Python
VMware虚拟机安装 Windows Server 2022的详细图文教程
2022/09/23 Servers