Nodejs实现多文件夹文件同步


Posted in NodeJs onOctober 17, 2018

本文实例为大家分享了Nodejs实现多文件夹文件同步的具体代码,供大家参考,具体内容如下

package.json

{
 "name": "asyncFile",
 "version": "0.0.1",
 "dependencies":{
 "fs-sync":"",
 "later":""
 }
}

asycnFile.js

var fsSync = require('fs-sync');
var fs = require('fs');
var util = require("util");
var later = require("later");

//需要同步的文件夹路径
var path = {
 "pathOne": "/home/lincoln/testAsync/dirOne/",
 "pathTwo": "/home/lincoln/testAsync/dirTwo/"
};

//需要同步的文件夹名称
var asyncDir = ["img", "music"];

var dirFilesOne;
var dirFilesTwo;

//读取文件夹信息
function readDir(dirName){
 dirFilesOne = fs.readdirSync(path.pathOne + dirName);
 dirFilesTwo = fs.readdirSync(path.pathTwo + dirName);
}

//使用fs-sync模块拷贝文件信息
function useFileCopy(sourcePath,distPath,copyFiles) {
 for(var index in copyFiles){
  fsSync.copy(sourcePath+copyFiles[index],distPath+copyFiles[index])
 }
}

//统计需要同步的文件信息
function needCopyFiles(sourceFiles, distFiles) {
 var needCopyFiles = [];
 for (var index in sourceFiles) {
  if (distFiles.indexOf(sourceFiles[index]) == -1) {
   needCopyFiles.push(sourceFiles[index]);
   console.log("needAsyncFile-->"+sourceFiles[index]);
  }

 }
 return needCopyFiles;
}

//同步文件
function copyFile(dirName) {
 var sourcePath = path.pathOne + dirName +"/";
 var distPath = path.pathTwo + dirName +"/";

 readDir(dirName)
 useFileCopy(sourcePath,distPath,needCopyFiles(dirFilesOne,dirFilesTwo));

 readDir(dirName);
 useFileCopy(distPath,sourcePath,needCopyFiles(dirFilesTwo,dirFilesOne));
}

//for (var index in asyncDir) {
// //console.log(asyncDir[index])
// console.log(new Date() +" 执行同步--->"+asyncDir[index])
// copyFile(asyncDir[index]);
//}

var sched = later.parse.recur().every(10).second(),
 t = later.setInterval(function() {
  for (var index in asyncDir) {
   //console.log(asyncDir[index])
   console.log(new Date() +" 执行同步--->"+asyncDir[index]);
   copyFile(asyncDir[index]);
  }
 }, sched);

代码只是能用,菜鸟写法,等js这块有深入理解了之后,再修改这块的代码,也希望js大牛指点。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

NodeJs 相关文章推荐
nodejs入门详解(多篇文章结合)
Mar 07 NodeJs
NodeJS Express框架中处理404页面一个方式
May 28 NodeJs
详解nodejs 文本操作模块-fs模块(五)
Dec 23 NodeJs
简单实现nodejs上传功能
Jan 14 NodeJs
nodejs连接mysql数据库简单封装示例-mysql模块
Apr 10 NodeJs
详解nodejs微信公众号开发——5.素材管理接口
Apr 11 NodeJs
nodejs socket实现的服务端和客户端功能示例
Jun 02 NodeJs
Express+Nodejs 下的登录拦截实现代码
Jul 01 NodeJs
nodejs中解决异步嵌套循环和循环嵌套异步的问题
Jul 12 NodeJs
Windows下使用Nodejs运行js的方法
Sep 02 NodeJs
nodejs的路径问题的解决
Jun 30 NodeJs
NodeJS如何实现同步的方法示例
Aug 24 NodeJs
深入理解NodeJS 多进程和集群
Oct 17 #NodeJs
CentOS7中源码编译安装NodeJS的完整步骤
Oct 13 #NodeJs
NodeJS加密解密及node-rsa加密解密用法详解
Oct 12 #NodeJs
NodeJS使用Range请求实现下载功能的方法示例
Oct 12 #NodeJs
nodejs实现范围请求的实现代码
Oct 12 #NodeJs
NodeJS搭建HTTP服务器的实现步骤
Oct 12 #NodeJs
NodeJS服务器实现gzip压缩的示例代码
Oct 12 #NodeJs
You might like
PHP 抓取网页图片并且另存为的实现代码
2010/03/24 PHP
DedeCMS 核心类TypeLink.class.php摘要笔记
2010/04/07 PHP
php文件怎么打开 如何执行php文件
2011/12/21 PHP
详解如何在云服务器上部署Laravel
2017/06/30 PHP
laravel excel 上传文件保存到本地服务器功能
2019/11/14 PHP
js有关元素内容操作小结
2011/12/20 Javascript
jquery如何判断某元素是否具备指定的样式
2013/11/05 Javascript
jQuery 和 CSS 的文本特效插件集锦
2014/12/12 Javascript
jquery UI Datepicker时间控件的使用方法(加强版)
2015/11/07 Javascript
jQuery移动端日期(datedropper)和时间(timedropper)选择器附源码下载
2016/04/19 Javascript
JS for...in 遍历语句用法实例分析
2016/08/24 Javascript
Vuejs第六篇之Vuejs与form元素实例解析
2016/09/05 Javascript
微信小程序之picker日期和时间选择器
2017/02/09 Javascript
原生JS实现拖拽功能
2020/12/16 Javascript
JS实现鼠标移动拖尾
2020/12/27 Javascript
原生js实现自定义滚动条组件
2021/01/20 Javascript
[01:48]2018DOTA2亚洲邀请赛主赛事第二日五佳镜头 VG完美团战逆转TNC
2018/04/05 DOTA
python通过文件头判断文件类型
2015/10/30 Python
Mac 上切换Python多版本
2017/06/17 Python
轻松理解Python 中的 descriptor
2017/09/15 Python
python2.7安装图文教程
2018/03/13 Python
简单了解django缓存方式及配置
2019/07/19 Python
python输出决策树图形的例子
2019/08/09 Python
Python 中 -m 的典型用法、原理解析与发展演变
2019/11/11 Python
tensorflow 查看梯度方式
2020/02/04 Python
Python如何根据时间序列数据作图
2020/05/12 Python
pycharm 的Structure界面设置操作
2021/02/05 Python
中国综合性网上购物商城:当当(网上卖书起家)
2016/11/16 全球购物
Expedia丹麦:全球领先的旅游网站
2018/03/18 全球购物
某同学的自我鉴定范文
2013/12/26 职场文书
致全体运动员广播稿
2014/02/01 职场文书
互联网电子商务专业毕业生求职信
2014/03/18 职场文书
小学开学标语
2014/07/01 职场文书
卡特教练观后感
2015/06/08 职场文书
2015年支教教师工作总结
2015/07/22 职场文书
python办公自动化之excel的操作
2021/05/23 Python