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实现PHP的print_r函数代码
Mar 14 NodeJs
跟我学Nodejs(二)--- Node.js事件模块
May 21 NodeJs
基于NodeJS的前后端分离的思考与实践(六)Nginx + Node.js + Java 的软件栈部署实践
Sep 26 NodeJs
nodejs实现获取某宝商品分类
May 28 NodeJs
Nodejs基于LRU算法实现的缓存处理操作示例
Mar 17 NodeJs
nodejs获取微信小程序带参数二维码实现代码
Apr 12 NodeJs
nodejs实现截取上传视频中一帧作为预览图片
Dec 10 NodeJs
nodejs超出最大的调用栈错误问题
Dec 27 NodeJs
NodeJS实现自定义流的方法
Aug 01 NodeJs
nodeJS进程管理器pm2的使用
Jan 09 NodeJs
nodejs实现聊天机器人功能
Sep 19 NodeJs
NodeJS http模块用法示例【创建web服务器/客户端】
Nov 05 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下通过exec获得计算机的唯一标识[CPU,网卡 MAC地址]
2011/06/09 PHP
PHP连接MongoDB示例代码
2012/09/06 PHP
CI框架源码阅读,系统常量文件constants.php的配置
2013/02/28 PHP
关于PHP的相似度计算函数:levenshtein的使用介绍
2013/04/15 PHP
thinkphp5 加载静态资源路径与常量的方法
2017/12/24 PHP
学习YUI.Ext 第七天--关于View&JSONView
2007/03/10 Javascript
Extjs 几个方法的讨论
2010/01/28 Javascript
sencha touch 模仿tabpanel导航栏TabBar的实例代码
2013/10/24 Javascript
jquery ajax 局部刷新小案例
2014/02/08 Javascript
TypeScript具有的几个不同特质
2015/04/07 Javascript
使用Function.apply()的参数数组化来提高 JavaScript程序性能的技巧
2015/12/23 Javascript
浅谈javascript 函数表达式和函数声明的区别
2016/01/05 Javascript
JavaScript从数组的indexOf()深入之Object的Property机制
2016/05/11 Javascript
jQuery实现页面评论栏中访客信息自动填写功能的方法
2016/05/23 Javascript
nodejs构建本地web测试服务器 如何解决访问静态资源问题
2017/07/14 NodeJs
node.js遍历目录的方法示例
2018/08/01 Javascript
vue Tab切换以及缓存页面处理的几种方式
2019/11/05 Javascript
详解Webpack4多页应用打包方案
2020/07/16 Javascript
vue动态合并单元格并添加小计合计功能示例
2020/11/26 Vue.js
[01:32]dota2拉比克至宝(222)
2018/12/20 DOTA
python实现自动登录人人网并访问最近来访者实例
2014/09/26 Python
钉钉群自定义机器人消息Python封装的实例
2019/02/20 Python
基于MSELoss()与CrossEntropyLoss()的区别详解
2020/01/02 Python
简单了解如何封装自己的Python包
2020/07/08 Python
HTML5 File接口在web页面上使用文件下载
2017/02/27 HTML / CSS
HTML5通过调用canvas对象的getContext()方法来获取绘图环境
2014/06/23 HTML / CSS
馥蕾诗美国官网:Fresh美国
2019/10/09 全球购物
巴塞罗那观光通票:Barcelona Pass
2019/10/30 全球购物
Fossil德国官网:化石手表、手袋、珠宝及配件
2019/12/07 全球购物
综合办公室个人的自我评价
2013/12/22 职场文书
党员批评与自我批评
2014/02/12 职场文书
单位工作证明书格式
2014/10/04 职场文书
毕业论文致谢词
2015/05/14 职场文书
PyTorch梯度裁剪避免训练loss nan的操作
2021/05/24 Python
MySQL七种JOIN类型小结
2021/10/24 MySQL
详解Oracle块修改跟踪功能
2021/11/07 Oracle