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极简入门教程(一):模块机制
Oct 25 NodeJs
nodejs开发环境配置与使用
Nov 17 NodeJs
Nodejs学习item【入门手上】
May 05 NodeJs
基于NodeJS+MongoDB+AngularJS+Bootstrap开发书店案例分析
Jan 12 NodeJs
详解nodejs微信公众号开发——1.接入微信公众号
Apr 10 NodeJs
nodejs获取微信小程序带参数二维码实现代码
Apr 12 NodeJs
NodeJs安装npm包一直失败的解决方法
Apr 28 NodeJs
nodejs通过钉钉群机器人推送消息的实现代码
May 05 NodeJs
nodejs的安装使用与npm的介绍
Sep 11 NodeJs
详解NodeJs项目 CentOs linux服务器线上部署
Sep 16 NodeJs
Nodejs 微信小程序消息推送的实现
Jan 20 NodeJs
NodeJS和浏览器中this关键字的不同之处
Mar 03 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生成文件
2007/01/15 PHP
彻底杜绝PHP的session cookie错误
2009/08/09 PHP
开启CURL扩展,让服务器支持PHP curl函数(远程采集)
2011/03/19 PHP
laravel5.1框架基础之Blade模板继承简单使用方法分析
2019/09/05 PHP
laravel validate 设置为中文的例子(验证提示为中文)
2019/09/29 PHP
js确定对象类型方法
2012/03/30 Javascript
addEventListener和attachEvent二者绑定的执行函数中的this不相同
2012/12/09 Javascript
JS中表单的使用小结
2014/01/11 Javascript
Extjs Label的 fieldLabel和html属性值对齐的方法
2014/06/15 Javascript
jquery判断输入密码两次是否相等
2020/04/22 Javascript
jQuery实现的指纹扫描效果实例(附演示与demo源码下载)
2016/01/26 Javascript
JavaScript的React Web库的理念剖析及基础上手指南
2016/05/10 Javascript
jquery实现手机端单店铺购物车结算删除功能
2017/02/22 Javascript
微信JS SDK接入的几点注意事项(必看篇)
2017/06/23 Javascript
获取本机IP地址的实例(JavaScript / Node.js)
2017/11/24 Javascript
vue结合axios与后端进行ajax交互的方法
2018/07/06 Javascript
vue计算属性get和set用法示例
2019/02/08 Javascript
JavaScript设计模式之观察者模式与发布订阅模式详解
2020/05/07 Javascript
JS实现前端动态分页码代码实例
2020/06/02 Javascript
[56:17]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第三场 8.22
2019/09/05 DOTA
基于python编写的微博应用
2014/10/17 Python
numpy.linspace函数具体使用详解
2019/05/27 Python
Python画图实现同一结点多个柱状图的示例
2019/07/07 Python
python求最大值,不使用内置函数的实现方法
2019/07/09 Python
python对常见数据类型的遍历解析
2019/08/27 Python
python中的逆序遍历实例
2019/12/25 Python
利用CSS3的定位页面元素
2009/08/29 HTML / CSS
学生干部学习的自我评价
2014/02/18 职场文书
电台编导求职信
2014/05/06 职场文书
六一儿童节演讲稿
2014/05/23 职场文书
自我管理的活动方案
2014/08/25 职场文书
荒岛余生观后感
2015/06/09 职场文书
家庭经济困难证明
2015/06/23 职场文书
六一儿童节园长致辞
2015/07/31 职场文书
《百分数的认识》教学反思
2016/02/19 职场文书
MySQL之MyISAM存储引擎的非聚簇索引详解
2022/03/03 MySQL