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服务器(7):阻塞操作的实现
Dec 18 NodeJs
Windows系统下使用Sublime搭建nodejs环境
Apr 13 NodeJs
使用nodejs开发cli项目实例
Jun 03 NodeJs
NodeJS与HTML5相结合实现拖拽多个文件上传到服务器的实现方法
Jul 26 NodeJs
nodejs如何获取时间戳与时间差
Aug 03 NodeJs
Nodejs进阶:核心模块net入门学习与实例讲解
Nov 21 NodeJs
nodejs搭建本地服务器并访问文件的方法
Mar 03 NodeJs
详解Nodejs之静态资源处理
Jun 05 NodeJs
nodeJS(express4.x)+vue(vue-cli)构建前后端分离实例(带跨域)
Jul 05 NodeJs
详解使用vscode+es6写nodejs服务端调试配置
Sep 21 NodeJs
NodeJs 模仿SIP话机注册的方法
Jun 21 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
swfupload 多文件上传实现代码
2008/08/27 PHP
php 特殊字符处理函数
2008/09/05 PHP
JoshChen_php新手进阶高手不可或缺的规范介绍
2013/08/16 PHP
thinkphp实现面包屑导航(当前位置)例子分享
2014/05/10 PHP
PHP人民币金额转大写实例代码
2015/10/02 PHP
php实现批量上传数据到数据库(.csv格式)的案例
2017/06/18 PHP
PHP实现二维数组中的查找算法小结
2018/06/09 PHP
Nodejs学习笔记之入门篇
2015/04/16 NodeJs
SpringMVC返回json数据的三种方式
2015/12/10 Javascript
浅析javascript函数表达式
2016/02/10 Javascript
基于Bootstrap里面的Button dropdown打造自定义select
2016/05/30 Javascript
vue2.0实战之基础入门(1)
2017/03/27 Javascript
Vue.js 60分钟快速入门教程
2017/03/28 Javascript
Vue中使用方法、计算属性或观察者的方法实例详解
2018/10/31 Javascript
详解使用angular框架离线你的应用(pwa指南)
2019/01/31 Javascript
Vue.js中的组件系统
2019/05/30 Javascript
Vue将页面导出为图片或者PDF
2020/08/17 Javascript
微信小程序与公众号实现数据互通的方法
2019/07/25 Javascript
使用vue打包进行云服务器上传的问题
2020/03/02 Javascript
[01:03:37]Secret vs VGJ.S Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
[06:48]DOTA2-DPC中国联赛2月26日Recap集锦
2021/03/11 DOTA
python使用socket远程连接错误处理方法
2015/04/29 Python
python xml解析实例详解
2016/11/14 Python
Python实现的爬虫功能代码
2017/06/24 Python
Python中的浮点数原理与运算分析
2017/10/12 Python
python 的 openpyxl模块 读取 Excel文件的方法
2019/09/09 Python
mac使用python识别图形验证码功能
2020/01/10 Python
Pytest单元测试框架如何实现参数化
2020/09/05 Python
用css3实现转换过渡和动画效果
2020/03/13 HTML / CSS
杭州信雅达系统.NET工程师面试试题
2015/02/08 面试题
计算机网络专业推荐信
2013/11/24 职场文书
毕业生自荐书
2014/02/02 职场文书
2014年妇委会工作总结
2014/12/10 职场文书
故宫导游词
2015/01/31 职场文书
详解Go与PHP的语法对比
2021/05/29 PHP
Python 实现绘制子图及子图刻度的变换等问题
2021/05/31 Python