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 相关文章推荐
将nodejs打包工具整合到鼠标右键的方法
May 11 NodeJs
nodejs中转换URL字符串与查询字符串详解
Nov 26 NodeJs
angular2+nodejs实现图片上传功能
Mar 27 NodeJs
nodejs 终端打印进度条实例代码
Apr 22 NodeJs
nodejs socket实现的服务端和客户端功能示例
Jun 02 NodeJs
nodeJs实现基于连接池连接mysql的方法示例
Feb 10 NodeJs
NodeJS父进程与子进程资源共享原理与实现方法
Mar 16 NodeJs
nodejs 十六进制字符串型数据与btye型数据相互转换
Jul 30 NodeJs
Nodejs把接收图片base64格式保存为文件存储到服务器上
Sep 26 NodeJs
详解从NodeJS搭建中间层再谈前后端分离
Nov 13 NodeJs
Nodejs异步流程框架async的方法
Jun 07 NodeJs
通过Nodejs搭建网站简单实现注册登录流程
Jun 14 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
将PHP作为Shell脚本语言使用
2006/10/09 PHP
mysql+php分页类(已测)
2008/03/31 PHP
APACHE的AcceptPathInfo指令使用介绍
2013/01/18 PHP
php使浏览器直接下载pdf文件的方法
2013/11/15 PHP
php遍历数组的4种方法总结
2014/07/05 PHP
PHP+Ajax检测用户名或邮件注册时是否已经存在实例教程
2014/08/23 PHP
跟我学Laravel之请求与输入
2014/10/15 PHP
PHP实现二维数组根据key进行排序的方法
2016/12/30 PHP
PHP PDO操作MySQL基础教程
2017/06/05 PHP
游戏人文件夹程序 ver 3.0
2006/07/14 Javascript
用 javascript 实现的点击复制代码
2007/03/24 Javascript
js实现延迟加载的方法
2015/06/24 Javascript
jQuery可见性过滤器:hidden和:visibility用法实例
2015/06/24 Javascript
实例讲解jQuery中对事件的命名空间的运用
2016/05/24 Javascript
Javascript 实现全屏滚动实例代码
2016/12/31 Javascript
JavaScript canvas仿代码流瀑布
2020/02/10 Javascript
简单介绍利用TK在Python下进行GUI编程的教程
2015/04/13 Python
python编写简单爬虫资料汇总
2016/03/22 Python
Python实现约瑟夫环问题的方法
2016/05/03 Python
深入理解python函数递归和生成器
2016/06/06 Python
Python2随机数列生成器简单实例
2017/09/04 Python
Windows 7下Python Web环境搭建图文教程
2018/03/20 Python
Python3.6实现连接mysql或mariadb的方法分析
2018/05/18 Python
pandas值替换方法
2018/07/10 Python
使用Python实现微信提醒备忘录功能
2018/12/04 Python
python 通过SSHTunnelForwarder隧道连接redis的方法
2019/02/19 Python
python的pytest框架之命令行参数详解(上)
2019/06/27 Python
Python检测端口IP字符串是否合法
2020/06/05 Python
python的flask框架难学吗
2020/07/31 Python
python的链表基础知识点
2020/09/13 Python
Django中的DateTimeField和DateField实现
2021/02/24 Python
详解HTML5 Canvas绘制时指定颜色与透明度的方法
2016/03/25 HTML / CSS
3个CCIE对一个工程师的面试题
2012/05/06 面试题
计算机毕业大学生求职信
2014/06/26 职场文书
列车乘务员工作不细心检讨书
2014/10/07 职场文书
2014年护士个人工作总结
2014/11/11 职场文书