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 npm包管理的配置方法及常用命令介绍
Jun 05 NodeJs
详谈nodejs异步编程
Dec 04 NodeJs
轻松创建nodejs服务器(8):非阻塞是如何实现的
Dec 18 NodeJs
nodejs中实现阻塞实例
Mar 24 NodeJs
nodeJS删除文件方法示例
Dec 25 NodeJs
nodejs基础知识
Feb 03 NodeJs
Nodejs 和Session 原理及实战技巧小结
Aug 25 NodeJs
关于Mac下安装nodejs、npm和cnpm的教程
Apr 11 NodeJs
NodeJS使用Range请求实现下载功能的方法示例
Oct 12 NodeJs
nodejs 使用 js 模块的方法实例详解
Dec 04 NodeJs
nodejs搭建本地服务器并访问文件操作示例
May 11 NodeJs
nodejs简单抓包工具使用详解
Aug 23 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下保存远程图片到本地的办法
2010/08/08 PHP
PHP防CC攻击实现代码
2011/12/29 PHP
Session的工作机制详解和安全性问题(PHP实例讲解)
2014/04/10 PHP
PHPMailer发送HTML内容、带附件的邮件实例
2014/07/01 PHP
PHP会话控制:Session与Cookie详解
2014/09/27 PHP
Zend Framework入门教程之Zend_Config组件用法详解
2016/12/09 PHP
JavaScript继承方式实例
2010/10/29 Javascript
从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件
2011/02/23 Javascript
JavaScript定义类和对象的方法
2014/11/26 Javascript
如何解决谷歌浏览器下jquery无法获取图片的尺寸
2015/09/10 Javascript
jquery实现简单的表单验证
2015/11/17 Javascript
灵活的理解JavaScript中的this指向
2016/02/25 Javascript
Vue.js划分组件的方法
2017/10/29 Javascript
nodejs项目windows下开机自启动的方法
2017/11/22 NodeJs
vue技术分享之你可能不知道的7个秘密
2018/04/09 Javascript
vue2.0 实现导航守卫(路由守卫)
2018/05/21 Javascript
快速解决处理后台返回json数据格式的问题
2018/08/07 Javascript
es6 filter() 数组过滤方法总结
2019/04/03 Javascript
[12:29]2018国际邀请赛 开幕秀
2018/08/22 DOTA
Python中Django框架下的staticfiles使用简介
2015/05/30 Python
解决出现Incorrect integer value: '' for column 'id' at row 1的问题
2017/10/29 Python
Python爬虫实例爬取网站搞笑段子
2017/11/08 Python
超简单的Python HTTP服务
2019/07/22 Python
解决Pytorch 训练与测试时爆显存(out of memory)的问题
2019/08/20 Python
python 进程的几种创建方式详解
2019/08/29 Python
python3 pillow模块实现简单验证码
2019/10/31 Python
python 模块导入问题汇总
2021/02/01 Python
小橄榄树:Le Petit Olivier
2018/04/23 全球购物
德国购买踏板车网站:Microscooter
2019/10/14 全球购物
广播电视新闻学专业应届生求职信
2013/10/08 职场文书
物业管理个人自我评价
2013/11/08 职场文书
学期自我评价
2014/01/27 职场文书
学校组织向国旗敬礼活动方案(中小学适用)
2014/09/27 职场文书
安全教育主题班会总结
2015/08/14 职场文书
MySQL 使用SQL语句修改表名的实现
2021/04/07 MySQL
教你如何用cmd快速登录服务器
2022/06/10 Servers