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极简入门教程(二):定时器
Oct 25 NodeJs
轻松创建nodejs服务器(9):实现非阻塞操作
Dec 18 NodeJs
详解nodejs 文本操作模块-fs模块(一)
Dec 22 NodeJs
nodeJS实现路由功能实例代码
Jun 08 NodeJs
NodeJS自定义模块写法(详解)
Jun 27 NodeJs
nodejs 图解express+supervisor+ejs的用法(推荐)
Sep 08 NodeJs
NodeJs通过async/await处理异步的方法
Oct 09 NodeJs
nodejs中art-template模板语法的引入及冲突解决方案
Nov 07 NodeJs
nodejs微信开发之授权登录+获取用户信息
Mar 17 NodeJs
nodejs分离html文件里面的js和css的方法
Apr 09 NodeJs
nodejs的安装使用与npm的介绍
Sep 11 NodeJs
nodejs中使用worker_threads来创建新的线程的方法
Jan 22 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 IP转换整形(ip2long)的详解
2013/06/06 PHP
php获得url参数中具有&的值的方法
2014/03/05 PHP
PHP中如何使用session实现保存用户登录信息
2015/10/20 PHP
利用Homestead快速运行一个Laravel项目的方法详解
2017/11/14 PHP
javascript学习笔记(十三) js闭包介绍(转)
2012/06/20 Javascript
文字不间断滚动(上下左右)实例代码
2013/04/21 Javascript
jquery实现的可隐藏重现的靠边悬浮层实例代码
2013/05/27 Javascript
jquery实现滑动图片自己测试的例子
2013/11/05 Javascript
JavaScript中使用arguments获得函数传参个数实例
2014/08/27 Javascript
jQuery实现炫酷的鼠标轨迹特效
2015/02/01 Javascript
超级给力的JavaScript的React框架入门教程
2015/07/02 Javascript
JavaScript取得WEB安全颜色列表的方法
2015/07/14 Javascript
标准的js无缝滚动效果
2016/08/30 Javascript
谈谈jQuery之Deferred源码剖析
2016/12/19 Javascript
基于BootStrap栅格栏系统完成网站底部版权信息区
2016/12/23 Javascript
nodejs根据ip数组在百度地图中进行定位
2017/03/06 NodeJs
Node.js中的http请求客户端示例(request client)
2017/05/04 Javascript
vue学习之mintui picker选择器实现省市二级联动示例
2017/10/12 Javascript
在Vue 中使用Typescript的示例代码
2018/09/10 Javascript
vue实现倒计时获取验证码效果
2020/04/17 Javascript
vue 自定义右键样式的实例代码
2019/11/06 Javascript
JavaScript实现答题评分功能页面
2020/06/24 Javascript
WebPack工具运行原理及入门教程
2020/12/02 Javascript
python 递归遍历文件夹,并打印满足条件的文件路径实例
2017/08/30 Python
pandas 条件搜索返回列表的方法
2018/10/30 Python
Pyqt5 基本界面组件之inputDialog的使用
2019/06/25 Python
pytorch 批次遍历数据集打印数据的例子
2019/12/30 Python
Python基于当前时间批量创建文件
2020/05/07 Python
基于Python pyecharts实现多种图例代码解析
2020/08/10 Python
Python并发爬虫常用实现方法解析
2020/11/19 Python
详解使用HTML5的classList属性操作CSS类
2017/10/13 HTML / CSS
UDP协议功能
2013/01/06 面试题
毕业生自荐信如何写
2014/03/24 职场文书
政协委员个人总结
2015/03/03 职场文书
2016党员入党决心书
2015/09/22 职场文书
2019新员工试用期转正申请书3篇
2019/08/13 职场文书