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实用示例 缩址还原
Dec 28 NodeJs
利用NodeJS的子进程(child_process)调用系统命令的方法分享
Jun 05 NodeJs
Nodejs使用mysql模块之获得更新和删除影响的行数的方法
Mar 18 NodeJs
nodejs教程之入门
Nov 21 NodeJs
NodeJs的优势和适合开发的程序
Aug 14 NodeJs
nodejs socket服务端和客户端简单通信功能
Sep 14 NodeJs
nodejs实现超简单生成二维码的方法
Mar 17 NodeJs
NodeJs搭建本地服务器之使用手机访问的实例讲解
May 12 NodeJs
nodejs aes 加解密实例
Oct 10 NodeJs
nodejs基础之多进程实例详解
Dec 27 NodeJs
详解nodejs 开发企业微信第三方应用入门教程
Mar 12 NodeJs
nodejs脚本centos开机启动实操方法
Mar 04 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中使用GD库创建圆形饼图的例子
2014/11/19 PHP
PHP滚动日志的代码实现
2015/06/10 PHP
PHP中的密码加密的解决方案总结
2016/10/26 PHP
整理8个很棒的 jQuery 倒计时插件和教程
2011/12/12 Javascript
体验js中splice()的强大(插入、删除或替换数组的元素)
2013/01/16 Javascript
JqueryMobile动态生成listView并实现刷新的两种方法
2014/03/05 Javascript
基于jQuery实现网页进度显示插件
2015/03/04 Javascript
JavaScript中使用Object.prototype.toString判断是否为数组
2015/04/01 Javascript
js实现模拟银行卡账号输入显示效果
2015/11/18 Javascript
js实现滚动条滚动到页面底部继续加载
2015/12/19 Javascript
BootStrap入门学习第一篇
2017/08/28 Javascript
Vue 中使用 CSS Modules优雅方法
2018/04/09 Javascript
vue 自定义指令自动获取文本框焦点的方法
2018/08/25 Javascript
vue组件传值的实现方式小结【三种方式】
2020/02/05 Javascript
JavaScript中展开运算符及应用的实例代码
2021/01/14 Javascript
three.js如何实现3D动态文字效果
2021/03/03 Javascript
Python 字符串操作实现代码(截取/替换/查找/分割)
2013/06/08 Python
python脚本设置系统时间的两种方法
2016/02/21 Python
基于python中theano库的线性回归
2018/08/31 Python
Python读取Excel表格,并同时画折线图和柱状图的方法
2018/10/14 Python
Python中实现单例模式的n种方式和原理
2018/11/14 Python
用python写测试数据文件过程解析
2019/09/25 Python
Python 闭包,函数分隔作用域,nonlocal声明非局部变量操作示例
2019/10/14 Python
使用jupyter Nodebook查看函数或方法的参数以及使用情况
2020/04/14 Python
使用Python将xmind脑图转成excel用例的实现代码(一)
2020/10/12 Python
详解Python Celery和RabbitMQ实战教程
2021/01/20 Python
Python爬虫实现selenium处理iframe作用域问题
2021/01/27 Python
如何用css3实现switch组件开关的方法
2018/02/09 HTML / CSS
解决canvas转base64/jpeg时透明区域变成黑色背景的方法
2016/10/23 HTML / CSS
Maxpeedingrods美国:高性能汽车零件
2020/02/14 全球购物
古驰英国官网:GUCCI英国
2020/03/07 全球购物
师范生实习自我鉴定
2013/11/01 职场文书
2015年国庆节标语大全
2015/07/30 职场文书
《祁黄羊》教学反思
2016/02/20 职场文书
css常用字体属性与背景属性介绍
2022/02/28 HTML / CSS