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中启用ECMAScript 6小结(windos以及Linux)
Jul 15 NodeJs
Nodejs极简入门教程(三):进程
Oct 27 NodeJs
nodejs开发环境配置与使用
Nov 17 NodeJs
nodejs教程之入门
Nov 21 NodeJs
详解nodejs爬虫程序解决gbk等中文编码问题
Apr 06 NodeJs
nodejs入门教程六:express模块用法示例
Apr 24 NodeJs
NodeJS实现微信公众号关注后自动回复功能
May 31 NodeJs
nodejs body-parser 解析post数据实例
Jul 26 NodeJs
nodejs实现OAuth2.0授权服务认证
Dec 27 NodeJs
nodejs高大上的部署方式(PM2)
Sep 11 NodeJs
Nodejs实现的操作MongoDB数据库功能完整示例
Feb 02 NodeJs
NodeJS有难度的面试题(能答对几个)
Oct 09 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设计模式 Proxy (代理模式)
2011/06/26 PHP
PHP读取汉字的点阵数据
2015/06/22 PHP
php、mysql查询当天,查询本周,查询本月的数据实例(字段是时间戳)
2017/02/04 PHP
PHP使用new StdClass()创建空对象的方法分析
2017/06/06 PHP
PHP面向对象程序设计模拟一般面向对象语言中的方法重载(overload)示例
2019/06/13 PHP
PHP7.3.10编译安装教程
2019/10/08 PHP
Javascript 获取滚动条位置等信息的函数
2009/09/08 Javascript
js实现一个省市区三级联动选择框代码分享
2013/03/06 Javascript
JS中批量给元素绑定事件过程中的相关问题使用闭包解决
2013/04/15 Javascript
jQuery瀑布流插件Wookmark使用实例
2014/04/02 Javascript
JS实现简易图片轮播效果的方法
2015/03/25 Javascript
Javascript验证Visa和MasterCard信用卡号的方法
2015/07/27 Javascript
js+css实现超简洁的二级下拉菜单效果代码
2015/09/07 Javascript
利用Vue.js指令实现全选功能
2016/09/08 Javascript
jQuery实现导航高亮的方法【附demo源码下载】
2016/11/09 Javascript
利用types增强vscode中js代码提示功能详解
2017/07/07 Javascript
利用Ionic2 + angular4实现一个地区选择组件
2017/07/27 Javascript
浅谈vue-lazyload实现的详细过程
2017/08/22 Javascript
JavaScript比较同一天的时间大小实例代码
2018/02/09 Javascript
js防抖和节流的深入讲解
2018/12/06 Javascript
JS前端知识点 运算符优先级,URL编码与解码,String,Math,arguments操作整理总结
2019/06/27 Javascript
如何修改Vue打包后文件的接口地址配置的方法
2020/04/22 Javascript
Django继承自带user表并重写的例子
2019/11/18 Python
在 Linux/Mac 下为Python函数添加超时时间的方法
2020/02/20 Python
Python range与enumerate函数区别解析
2020/02/28 Python
Python3开发环境搭建详细教程
2020/06/18 Python
木马的传播途径主要有哪些
2016/04/08 面试题
汽车驾驶求职信
2013/10/25 职场文书
初中班主任评语大全
2014/04/24 职场文书
食品销售计划书
2014/04/26 职场文书
小学生自我评价100字(15篇)
2014/09/18 职场文书
党的群众路线教育实践活动个人整改落实情况汇报
2014/10/28 职场文书
教师岗位职责范本
2015/04/02 职场文书
2016年小学中秋节活动总结
2016/04/05 职场文书
python游戏开发Pygame框架
2022/04/22 Python
MutationObserver在页面水印实现起到的作用详解
2022/07/07 Javascript