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 sublime text 3安装与配置
Jun 19 NodeJs
Nodejs极简入门教程(三):进程
Oct 27 NodeJs
轻松创建nodejs服务器(4):路由
Dec 18 NodeJs
nodejs如何获取时间戳与时间差
Aug 03 NodeJs
nodejs搭建本地服务器并访问文件的方法
Mar 03 NodeJs
NodeJs模拟登陆正方教务
Apr 28 NodeJs
nodeJS实现路由功能实例代码
Jun 08 NodeJs
Nodejs下使用gm圆形裁剪并合成图片的示例
Feb 22 NodeJs
nodejs require js文件入口,在package.json中指定默认入口main方法
Oct 10 NodeJs
nodejs npm错误Error:UNKNOWN:unknown error,mkdir 'D:\Develop\nodejs\node_global'at Error
Mar 02 NodeJs
关于NodeJS中的循环引用详解
Jul 23 NodeJs
纯异步nodejs文件夹(目录)复制功能
Sep 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 计划任务 检测用户连接状态
2012/03/29 PHP
ThinkPHP3.1之D方法实例详解
2014/06/20 PHP
php基于socket实现SMTP发送邮件的方法
2015/03/05 PHP
CodeIgniter针对lighttpd服务器URL重写的方法
2015/06/10 PHP
php字符串操作针对负值的判断分析
2016/07/28 PHP
JS前端框架关于重构的失败经验分享
2013/03/17 Javascript
神奇!js+CSS+DIV实现文字颜色渐变效果
2016/03/16 Javascript
jQuery on()方法绑定动态元素的点击事件实例代码浅析
2016/06/16 Javascript
JS输出空格的简单实现方法
2016/09/08 Javascript
BootStrap实现手机端轮播图左右滑动事件
2016/10/13 Javascript
bootstrap模态框跳转到当前模板页面 框消失了而背景存在问题的解决方法
2020/11/30 Javascript
BootStrap 图标icon符号图标glyphicons不正常显示的快速解决办法
2016/12/08 Javascript
jQuery实现拖动剪裁图片作为头像
2016/12/28 Javascript
老生常谈jacascript DOM节点获取
2017/04/17 Javascript
JavaScript碎片—函数闭包(模拟面向对象)
2019/03/13 Javascript
js实现页面导航层级指示效果
2020/08/25 Javascript
微信小程序实现简单购物车功能
2020/12/30 Javascript
[00:38]TI珍贵瞬间系列(二):笑
2020/08/26 DOTA
Python正则表达式使用范例分享
2016/12/04 Python
Python导入模块时遇到的错误分析
2017/08/30 Python
TF-IDF与余弦相似性的应用(二) 找出相似文章
2017/12/21 Python
python使用BeautifulSoup与正则表达式爬取时光网不同地区top100电影并对比
2019/04/15 Python
PYTHON如何读取和写入EXCEL里面的数据
2019/10/28 Python
tensorflow的计算图总结
2020/01/12 Python
python中threading开启关闭线程操作
2020/05/02 Python
阿根廷网上配眼镜:SmartBuyGlasses阿根廷
2016/08/19 全球购物
杭州SQL浙江浙大网新恩普软件有限公司
2013/07/27 面试题
教师岗位职责
2013/11/17 职场文书
公积金转移接收函
2014/01/11 职场文书
2014年入党积极分子党课学习心得体会模板
2014/04/03 职场文书
实习单位评语
2014/04/26 职场文书
会议室标语
2014/06/21 职场文书
医院党员公开承诺书
2014/08/30 职场文书
升职感谢信
2015/01/22 职场文书
用Python写一个简易版弹球游戏
2021/04/13 Python
修改并编译golang源码的操作步骤
2021/07/25 Golang