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读取memcache示例分享
Jan 02 NodeJs
Express与NodeJs创建服务器的两种方法
Feb 06 NodeJs
详解nodeJS之二进制buffer对象
Jun 03 NodeJs
深入学习nodejs中的async模块的使用方法
Jul 12 NodeJs
nodejs 图解express+supervisor+ejs的用法(推荐)
Sep 08 NodeJs
Nodejs+angularjs结合multiparty实现多图片上传的示例代码
Sep 29 NodeJs
NodeJs form-data格式传输文件的方法
Dec 13 NodeJs
nodejs实现套接字服务功能详解
Jun 21 NodeJs
Nodejs中的JWT和Session的使用
Aug 21 NodeJs
nodejs 递归拷贝、读取目录下所有文件和目录
Jul 18 NodeJs
NodeJS模块Buffer原理及使用方法解析
Nov 11 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笔记之:有规律大文件的读取与写入的分析
2013/04/26 PHP
完善CodeIgniter在IDE中代码提示功能的方法
2014/07/19 PHP
php批量删除数据库下指定前缀的表以prefix_为例
2014/08/24 PHP
PHP实现Session入库/存入redis的方法
2017/05/04 PHP
PDO::lastInsertId讲解
2019/01/29 PHP
ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解
2019/04/03 PHP
JQuery一种取同级值的方式(比如你在GridView中)
2012/03/15 Javascript
js将字符串转成正则表达式的实现方法
2013/11/13 Javascript
基于jquery实现放大镜效果
2015/08/17 Javascript
jQuery实现可以控制图片旋转角度效果(附demo源码下载)
2016/01/27 Javascript
jquery 抽奖小程序实现代码
2016/10/12 Javascript
原生JS改变透明度实现轮播效果
2017/03/24 Javascript
基于angular实现三级联动的生日插件
2017/05/12 Javascript
React Native第三方平台分享的实例(Android,IOS双平台)
2017/08/04 Javascript
React实践之Tree组件的使用方法
2017/09/30 Javascript
vue-cli 引入、配置axios的方法
2018/05/08 Javascript
解决JavaScript layui 下拉框不显示的问题
2018/08/14 Javascript
webpack4 SCSS提取和懒加载的示例
2018/09/03 Javascript
爬虫利器Puppeteer实战
2019/01/09 Javascript
微信小程序视图控件与bindtap之间的问题的解决
2019/04/08 Javascript
Selenium执行Javascript脚本参数及返回值过程详解
2020/04/01 Javascript
简单介绍Python的Django框架的dj-scaffold项目
2015/05/30 Python
详解python中的json的基本使用方法
2016/12/21 Python
pytorch 求网络模型参数实例
2019/12/30 Python
python入门之井字棋小游戏
2020/03/05 Python
台湾良兴购物网:EcLife
2019/12/01 全球购物
广播体操比赛口号
2014/06/10 职场文书
四风问题查摆材料
2014/08/25 职场文书
乡领导班子四风问题对照检查材料
2014/09/25 职场文书
学校领导四风问题整改措施思想汇报
2014/10/09 职场文书
拾金不昧表扬信
2015/01/16 职场文书
休假证明书
2015/06/24 职场文书
学困生帮扶工作总结
2015/08/13 职场文书
学习焦裕禄先进事迹心得体会
2016/01/23 职场文书
浅谈redis五大数据结构和使用场景
2021/04/12 Redis
mysql创建存储过程及函数详解
2021/12/04 MySQL