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的前后端分离的思考与实践(五)多终端适配
Sep 26 NodeJs
NodeJS中利用Promise来封装异步函数
Feb 25 NodeJs
详解nodejs 文本操作模块-fs模块(二)
Dec 22 NodeJs
mac下的nodejs环境安装的步骤
May 24 NodeJs
NodeJS使用七牛云存储上传文件的方法
Jul 24 NodeJs
浅谈nodejs中的类定义和继承的套路
Jul 26 NodeJs
详解使用vscode+es6写nodejs服务端调试配置
Sep 21 NodeJs
详解nodejs通过代理(proxy)发送http请求(request)
Sep 22 NodeJs
NodeJS爬虫实例之糗事百科
Dec 14 NodeJs
nodejs实现连接mongodb数据库的方法示例
Mar 15 NodeJs
修改Nodejs内置的npm默认配置路径方法
May 13 NodeJs
nodejs同步调用获取mysql数据时遇到的大坑
Mar 02 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脚本的10个技巧(7)
2006/10/09 PHP
我的论坛源代码(一)
2006/10/09 PHP
php多用户读写文件冲突的解决办法
2013/11/06 PHP
PHP中使用TCPDF生成PDF文档实例
2014/07/01 PHP
PHP基于堆栈实现的高级计算器功能示例
2017/09/15 PHP
PHP简单实现正则匹配省市区的方法
2018/04/13 PHP
nicejforms——美化表单不用愁
2007/02/20 Javascript
jQuery 表单验证插件formValidation实现个性化错误提示
2009/06/23 Javascript
JQuery跨Iframe选择实现代码
2010/08/19 Javascript
JavaScript mapreduce工作原理简析
2012/11/25 Javascript
javascript中有趣的反柯里化深入分析
2012/12/05 Javascript
js自定义事件及事件交互原理概述(一)
2013/02/01 Javascript
chrome下jq width()方法取值为0的解决方法
2014/05/26 Javascript
node.js中的fs.write方法使用说明
2014/12/15 Javascript
JS获取一个表单字段中多条数据并转化为json格式
2017/10/17 Javascript
JS+canvas画一个圆锥实例代码
2017/12/13 Javascript
微信小程序出现wx.navigateTo页面不跳转问题的解决方法
2017/12/26 Javascript
vue-quill-editor+plupload富文本编辑器实例详解
2018/10/19 Javascript
node.js连接mysql与基本用法示例
2019/01/05 Javascript
vue cli3.0结合echarts3.0与地图的使用方法示例
2019/03/26 Javascript
vue中keep-alive组件的入门使用教程
2019/06/06 Javascript
微信小程序开发搜索功能实现(前端+后端+数据库)
2020/03/04 Javascript
ant-design-vue按需加载的坑的解决
2020/05/14 Javascript
Python内置函数之filter map reduce介绍
2014/11/30 Python
Diango + uwsgi + nginx项目部署的全过程(可外网访问)
2018/04/22 Python
Python对HTML转义字符进行反转义的实现方法
2019/04/28 Python
keras中模型训练class_weight,sample_weight区别说明
2020/05/23 Python
Python如何读写二进制数组数据
2020/08/01 Python
法国购买隐形眼镜和眼镜网站:Optical Center
2019/10/08 全球购物
李维斯牛仔裤英国官方网站:Levi’s英国
2019/10/10 全球购物
美体小铺印度官网:The Body Shop印度
2019/10/17 全球购物
俄罗斯最大的在线珠宝大卖场:Nebo
2019/12/08 全球购物
德国富尔达运动鞋店:43einhalb
2020/12/25 全球购物
医药大学生求职简历的自我评价
2013/10/17 职场文书
机械工程师岗位职责
2014/06/16 职场文书
CSS浮动引起的高度塌陷问题
2022/08/05 HTML / CSS