nodejs文件夹深层复制功能

 更新时间:2019年09月03日 09:43:26   作者:java_Android  
这篇文章主要介绍了nodejs文件夹深层复制功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

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

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

 

这时候就不能在一层的一层的判断了,万一运营给的嵌套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文件夹深层复制功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

相关文章

  • node.js实现为PDF添加水印的示例代码

    node.js实现为PDF添加水印的示例代码

    这篇文章主要介绍了node.js实现为PDF添加水印的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-12-12
  • Nodejs搭建wss服务器教程

    Nodejs搭建wss服务器教程

    这篇文章主要为大家详细介绍了Nodejs搭建wss服务器的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • 详解如何在NodeJS应用程序中处理多个API请求

    详解如何在NodeJS应用程序中处理多个API请求

    NodeJS默认是异步的,这意味着它已经能够同时处理多个请求,但它只适用于I/O操作,如HTTP请求、文件系统操作、数据库查询、实时聊天应用等,在处理CPU密集型任务时,可能需要很长时间,这就是为什么NodeJS提供了一些我们将在下面介绍的特定包
    2023-12-12
  • Node.js实现登陆注册功能

    Node.js实现登陆注册功能

    这篇文章主要为大家详细介绍了Node.js实现登陆注册功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • 关于npm i几种常见命令的区别详解

    关于npm i几种常见命令的区别详解

    npm(Node.js Package Manager)是一个Node.js的包管理工具,用来解决Node.js代码部署问题,下面这篇文章主要给大家介绍了关于npm i几种常见命令的那点事,需要的朋友可以参考下
    2023-03-03
  • 从零开始学习Node.js系列教程四:多页面实现数学运算的client端和server端示例

    从零开始学习Node.js系列教程四:多页面实现数学运算的client端和server端示例

    这篇文章主要介绍了Node.js多页面实现数学运算的client端和server端,结合具体实例形式分析了nodejs客户端提交与服务端处理实现数学运算的相关操作技巧,需要的朋友可以参考下
    2017-04-04
  • npm一键安装Python以及node-sass依赖环境的方法

    npm一键安装Python以及node-sass依赖环境的方法

    Node-sass是一个库,它将Node.js绑定到LibSass,下面这篇文章主要给大家介绍了关于npm一键安装Python以及node-sass依赖环境的相关资料,文中还介绍了安装node-sass报错Python环境问题避坑指南,需要的朋友可以参考下
    2022-09-09
  • VSCode使用npm的详细步骤

    VSCode使用npm的详细步骤

    为了避免造轮子,我们有时候会用到其他人的劳动成果,比如一些优秀的框架,比如Express,我们直接使用NPM下载下来就可以用了,降低开发成本和时间,这篇文章主要给大家介绍了关于VSCode使用npm的详细步骤,需要的朋友可以参考下
    2022-09-09
  • 使用nodejs + koa + typescript 集成和自动重启的问题

    使用nodejs + koa + typescript 集成和自动重启的问题

    这篇文章主要介绍了nodejs + koa + typescript 集成和自动重启,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • 浅谈NodeJS中require路径问题

    浅谈NodeJS中require路径问题

    学习Nodejs也是出于对这个新产物的好奇,而且有两个重要项目也需要他的支持,所以要好好学学这个新语种。在nodejs中,模块大概可以分为核心模块和文件模块。核心模块是被编译成二进制代码,引用的时候只需require表示符即可
    2015-05-05

最新评论