介绍自己做的网站的论文/全国教育培训机构平台

介绍自己做的网站的论文,全国教育培训机构平台,怎么做网站服务器,聊城做网站的公司价格nodejs文件夹深层复制功能发布时间:2020-10-16 16:35:07来源:脚本之家阅读:116作者:java_Android前段时间接到领导要求,运营那边会时不时的给我一些.html文件,让我呢把里面的某些东西给解析出来插入到数据库…

nodejs文件夹深层复制功能

发布时间:2020-10-16 16:35:07

来源:脚本之家

阅读:116

作者:java_Android

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

c2d477690ca95f6b099694b3be979b78.png

2292925f053bf571cd851611099fb1aa.png

我所需要是将运营给的文件夹中每个文件都复制到某个文件夹中(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后来发现有的文件会有多重文件夹的嵌套

fa207f47b4c419a00a437747d82e6ad2.png

这时候就不能在一层的一层的判断了,万一运营给的嵌套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来写,可能看上去有些凌乱,但是都写了注释,相信聪明的你一定看得懂。执行完代码后,复制就完成了,大功告成。

70aa47a6a7140e1d78b803c79b8b3532.png

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

总结

以上所述是小编给大家介绍的nodejs文件夹深层复制功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对亿速云网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/442981.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

慧停车安装后显示服务器异常,智能停车场系统常见故障以及排除方法

原标题:智能停车场系统常见故障以及排除方法随着停车问题日益增多,很多住宅小区都基本安装了智能化的停车场系统,智能停车场系统一般由入口控制机、出口控制机、智能道闸、地感线圈、余位显示屏、图象识别设备、系统软件、管理工作站等组成。…

ios 自定义拍照页面_vivo X27只靠颜值和拍照吃饭?体验过后你也会被系统所折服...

说到vivo X27,相信很多小伙伴都会第一时间想到其帅气的颜值以及强悍的拍照!的确,就颜值来说,vivo X27凭借着升降式摄像头、零界全面屏、不凸出的后置三摄以及孔雀纹理的确称的上是2019年的最美旗舰;而拍照就更不用说了…

consul 日志配置_Go语言微服务架构实战:第十一节 启动Consul

启动Consul安装配置好Consul以后,我们可以通过简单的命令启动consul。先来看最简单的启动方式:consul agent -dev在新终端中,执行如上操作。hongweiyulocalhost:~$ consul agent -dev > Starting Consul agent... > Consul agent runni…

chrome修改js数据怎么生效_chrome浏览器中 F12 功能的简单介绍

首先介绍Chrome开发者工具中,调试时使用最多的三个功能页面是:元素(ELements)、控制台(Console)、源代码(Sources),此外还有网络(Network)等。元素…

python split函数 空格_Python随笔29:Python基础编程练习题23~24

注:本文所有代码均经过Python 3.7实际运行检验,保证其严谨性。Python编程Python基础练习题23:求三角形斜边上的高输入直角三角形两直角边a、b的值,输出斜边上的高,最后结果使用round(x, 2) 函数四舍五入保留2位小数。输…

docker run后台启动命令_Docker-第五部分:15个 Docker 命令

原文作者:Jeff Hale原文地址:https://towardsdatascience.com/15-docker-commands-you-should-know-970ea5203421翻译:付新圆在这篇文章中,我们将学习15个Dockers CLI命令。如果你还不了解Docker,请查看这个系列的其他…

ospf 环回口的路由条目_路由策略之重分发示例分析

重分发示例网络拓扑解析:如图,R1-R2运行OSPF10,通过各自F0/0口建立ospf邻居,R1上静态路由:ip route 192.168.11.0 255.255.255.0 13.1.1.2ip route 192.168.13.0 255.255.255.0 13.1.1.2然后在ospf10进程下&#xff0c…

我国常用的投影坐标系_我国常用坐标系和高程系详解

北京54坐标系(BJZ54)北京54坐标系为参心大地坐标系,大地上的一点可用经度L54、纬度M54和大地高H54定位,它是以克拉索夫斯基椭球为基础,经局部平差后产生的坐标系。新中国成立以后,我国大地测量进入了全面发展时期,再全…

miniconda3 安装numpy_OpenCV4在Ubuntu1810/1604安装

本文简要介绍OpenCV4在Ubuntu 1810上的安装。目前OpenCV最新的稳定版本是4.0.1,可以从官网下载并解压,也可以从github上获取最新源码进行安装安装依赖sudo apt-get install cmake build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg…

载winpcap4.1.1_最常用的11个电缆载流量数据表,建议收藏备用

《0.6/1KV聚氯乙烯绝缘电力电缆载流量》《1~3芯额定电压0.6/1kv-1.8/3kv电缆载流量表》《YJV、YJY、YJV22额定电压在6/6、6/10kv电缆载流量》《常见BVVB型、BLVVB型、RVVB型电线载流量》《常见BV线载流量》《矿物质绝缘电缆载流量表》载流量数据表,是我们在日常工作…

android 虚拟键盘改变单个按键颜色_这款机械键盘很特别!一亿次按键寿命还有高颜值...

电脑主机要上RGB,那外设自然不能落下,虽说没有60%性能加成,用炫酷的灯光点亮桌面的感觉也是不错的。德国老牌外设品牌——冰豹(ROCCAT)2018年发布了Vulcan系列机械键盘,凭借着独特的设计和AIMO智能灯效颇受玩家好评。现在&#xf…

C++设计模式 #6 桥模式(Bridge)

动机 由于某些类型的固有的实现逻辑,使得它们具有两个变化的维度,乃至多个变化的维度。 如何应对这种“多维度的变化”?如何利用面向对象技术来使得类型可以轻松地沿着两个乃至多个方向变化,而不引入额外的复杂度 举个栗子 我们…

c99什么意思_C语言中-是什么意思啊?

展开全部->是一个整体,它是用于指向结构体、C中的class等含有子数据的指针用e5a48de588b662616964757a686964616f31333366303130来取子数据。换种说法,如果我们在C语言中定义了一个结构体,然后申明一个指针指向这个结构体,那么…

mysql外键关联查询_MySQL外键约束和多表联查

一.创建外键#测试数据表# 教师表,主表CREATE TABLE teacher(id INT PRIMARY KEY AUTO_INCREMENT,name varchar(20),age INT)ENGINEInnoDB DEFAULT CHARSETUTF8;#测试数据:INSERT INTO teacher values(1,范冰冰,22),(2,周杰棍,30),(3,双杰伦,35),(4,梁朝伟…

mysql innodb id_MySQL InnoDB row_id边界溢出验证的方法步骤

背景跟同学聊到row_id一个边界问题,这里详细说明下。InnoDB表若没有定义主键,会使用系统的一个默认递增row_id (dict_sys->row_id)作为主键。每次插入一行加1,到达最大值循环复用。需要注意的是,虽然dict_sys->row_id 被定义…

mysql mysqld.sock_MySQL笔记-最简单的方法来解决找不到mysqld.sock文件的问题

首先,环境:ubuntu 14.04,采用apt-get的方式安装的,手动安装可能路径设置稍有区别。1、安装MySQL后,用命令行首次启动时发现找不到Mysqld.sock文件,提示:ERROR 2002 (HY000): Cant connect to local MySQL server throu…

plan explorer mysql_plan explorer支持oracle吗

展开全部1.SQL语句的执行62616964757a686964616fe58685e5aeb931333361326365计划使用EXPLAIN PLAN语句来确定Oracle数据库下指定SQL语句的执行计划,这个语句插入每一步执行计划的行描述到指定表中。你也可使用EXPLAIN PLAN语句作为SQL跟踪工具的一部分。EXPLAIN PLA…

python 列表转图结构_Python读取网络(图)边列表数据进而转化为邻接矩阵

import networkx as nxG nx.Graph()path ./edge_list.txtedge_list []node_set set() #集合的特性就是元素不会重复,互异的with open(path, r) as f:for line in f:cols line.strip().split( )y1int(cols[0])y2int(cols[1])node_set.add(y1)node_set.add(y2)ed…

r语言读写word_R语言:在word中插入ggplot

最近CRAN上新了一个叫eoffice的package,并且不时被各路大佬提起。这个包的功能刚好也符合我最近的需求,这次带各位先来试试水。包的官方介绍:1. Introduction​cran.r-project.org这次主要试试在word中用该包插入ggplot。既然要试&#xff0c…

hamburger组件_一个侧边栏导航组件实现思路

翻译:布兰作者:Adam Argyle来源:https://web.dev/building-a-sidenav-component/在这篇文章中,我想和大家分享我是如何为 web 原型化一个 Sidenav 组件的,这个组件是响应式的,有状态的,支持键盘…