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 相关文章推荐
使用upstart把nodejs应用封装为系统服务实例
Jun 01 NodeJs
nodejs开发环境配置与使用
Nov 17 NodeJs
nodejs中实现sleep功能实例
Mar 24 NodeJs
nodejs简单实现操作arduino
Sep 25 NodeJs
Nodejs进阶:基于express+multer的文件上传实例
Nov 21 NodeJs
详解nodejs模板引擎制作
Jun 14 NodeJs
深入解析nodejs HTTP服务
Jul 25 NodeJs
nodejs结合socket.io实现websocket通信功能的方法
Jan 12 NodeJs
详解webpack打包nodejs项目(前端代码)
Sep 19 NodeJs
Nodejs监听日志文件的变化的过程解析
Aug 04 NodeJs
nodejs如何在package.json中设置多条启动命令
Mar 16 NodeJs
Nodejs在局域网配置https访问的实现方法
Oct 17 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下通过系统信号量加锁方式获取递增序列ID
2009/09/25 PHP
奇怪的PHP引用效率问题分析
2012/03/23 PHP
PHP 观察者模式的实现代码
2013/05/10 PHP
PHP全功能无变形图片裁剪操作类与用法示例
2017/01/10 PHP
js trim函数 去空格函数与正则集锦
2009/11/20 Javascript
jquery教程限制文本框只能输入数字和小数点示例分享
2014/01/13 Javascript
理解JavaScript表单的基础知识
2016/01/25 Javascript
bootstrap选项卡使用方法解析
2017/01/11 Javascript
vue2.0在没有dev-server.js下的本地数据配置方法
2018/02/23 Javascript
Iview Table组件中各种组件扩展的使用
2018/10/20 Javascript
Vue将页面导出为图片或者PDF
2020/08/17 Javascript
解决vue初始化项目时,一直卡在Project description上的问题
2019/10/31 Javascript
原生JavaScript创建不可变对象的方法简单示例
2020/05/07 Javascript
基于JS实现计算24点算法代码实例解析
2020/07/23 Javascript
Vue+Element UI 树形控件整合下拉功能菜单(tree + dropdown +input)
2020/08/28 Javascript
浅谈JavaScript 声明提升
2020/09/14 Javascript
Python的Django框架中的select_related函数对QuerySet 查询的优化
2015/04/01 Python
编写Python脚本把sqlAlchemy对象转换成dict的教程
2015/05/29 Python
Python文件读取的3种方法及路径转义
2015/06/21 Python
Djang中静态文件配置方法
2015/07/30 Python
python实现Floyd算法
2018/01/03 Python
Python3非对称加密算法RSA实例详解
2018/12/06 Python
python f-string式格式化听语音流程讲解
2019/06/18 Python
Flask中jinja2的继承实现方法及实例
2021/03/03 Python
浅谈HTML5 FileReader分布读取文件以及其方法简介
2017/11/09 HTML / CSS
彪马法国官网:PUMA法国
2019/12/15 全球购物
澳大利亚体育和露营装备在线/实体零售商:Find Sports
2020/06/03 全球购物
自我评价格式
2014/01/06 职场文书
毕业证丢失证明
2014/01/15 职场文书
安全生产汇报材料
2014/02/17 职场文书
一年级学生评语大全
2014/04/21 职场文书
群众路线四风自我剖析材料
2014/10/08 职场文书
应急管理工作总结2015
2015/05/04 职场文书
生日寿星公答谢词
2015/09/29 职场文书
浅谈MySQL 亿级数据分页的优化
2021/06/15 MySQL