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服务器(10):处理上传图片
Dec 18 NodeJs
NodeJs读取JSON文件格式化时的注意事项
Sep 25 NodeJs
解析NodeJS异步I/O的实现
Apr 13 NodeJs
用nodejs实现json和jsonp服务的方法
Aug 25 NodeJs
nodejs实现大文件(在线视频)的读取
Oct 16 NodeJs
原生nodejs使用websocket代码分享
Apr 07 NodeJs
nodejs中express入门和基础知识点学习
Sep 13 NodeJs
nodejs中request库使用HTTPS代理的方法
Apr 30 NodeJs
详解NodeJs项目 CentOs linux服务器线上部署
Sep 16 NodeJs
使用nodejs实现JSON文件自动转Excel的工具(推荐)
Jun 24 NodeJs
用Nodejs实现在终端中炒股的实现
Oct 18 NodeJs
nodejs中内置模块fs,path常见的用法说明
Nov 07 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提示Cannot modify header information - headers already sent by解决方法
2014/09/22 PHP
php实现上传图片文件代码
2015/07/19 PHP
jquery中的sortable排序之后的保存状态的解决方法
2010/01/28 Javascript
jquery 图片轮换效果
2010/07/29 Javascript
jQuery事件绑定.on()简要概述及应用
2013/02/07 Javascript
jQuery javaScript捕获回车事件(示例代码)
2013/11/07 Javascript
js定时调用方法成功后并停止调用示例
2014/04/08 Javascript
js匿名函数的调用示例(形式多种多样)
2014/08/20 Javascript
node.js中的fs.rmdirSync方法使用说明
2014/12/16 Javascript
使用jquery制作弹出框效果
2015/04/03 Javascript
JS+CSS实现简单的二级下拉导航菜单效果
2015/09/21 Javascript
JavaScript实现网页加载进度条代码超简单
2015/09/21 Javascript
jquery根据td给相同tr下其他td赋值的实现方法
2016/10/05 Javascript
Bootstrap和Java分页实例第一篇
2016/12/23 Javascript
Bootstrap表格制作代码
2017/03/17 Javascript
原生js编写2048小游戏
2017/03/17 Javascript
jQuery操作之效果详解
2017/05/19 jQuery
vue同步父子组件和异步父子组件的生命周期顺序问题
2018/10/07 Javascript
vue实现pdf导出解决生成canvas模糊等问题(推荐)
2018/10/18 Javascript
vue实现放大镜效果
2020/09/17 Javascript
python使用ctypes模块调用windowsapi获取系统版本示例
2014/04/17 Python
浅谈numpy中linspace的用法 (等差数列创建函数)
2017/06/07 Python
对Python的交互模式和直接运行.py文件的区别详解
2019/06/29 Python
pandas DataFrame 警告(SettingWithCopyWarning)的解决
2019/07/23 Python
关于Pytorch的MLP模块实现方式
2020/01/07 Python
Python如何读取、写入CSV数据
2020/07/28 Python
Pycharm及python安装详细教程(图解)
2020/07/31 Python
html5 Web SQL Database 之事务处理函数transaction与executeSQL解析
2013/11/07 HTML / CSS
世界上最好的精品店:Shoptiques
2018/02/05 全球购物
汽车销售求职自荐信
2013/10/01 职场文书
自荐书封面下载
2013/11/29 职场文书
乡文化站暑期培训方案
2014/08/28 职场文书
委托证明书
2014/09/17 职场文书
卖车协议书范本4篇
2014/10/01 职场文书
律师函格式范本
2015/05/27 职场文书
Python OpenCV超详细讲解读取图像视频和网络摄像头
2022/04/02 Python