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入门详解(多篇文章结合)
Mar 07 NodeJs
Nodejs Post请求报socket hang up错误的解决办法
Sep 25 NodeJs
Nodejs关于gzip/deflate压缩详解
Mar 04 NodeJs
nodejs使用express创建一个简单web应用
Mar 31 NodeJs
nodejs个人博客开发第二步 入口文件
Apr 12 NodeJs
nodejs+express搭建多人聊天室步骤
Feb 12 NodeJs
nodejs实现解析xml字符串为对象的方法示例
Mar 14 NodeJs
nodejs实现超简单生成二维码的方法
Mar 17 NodeJs
nodejs实现范围请求的实现代码
Oct 12 NodeJs
nodejs简单抓包工具使用详解
Aug 23 NodeJs
nodejs对mongodb数据库的增加修删该查实例代码
Jan 05 NodeJs
Nodejs实现WebSocket代码实例
May 19 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
同时提取多条新闻中的文本一例
2006/10/09 PHP
apache+codeigniter 通过.htcaccess做动态二级域名解析
2012/07/01 PHP
PHP实现多文件上传的方法
2015/07/08 PHP
前端必学之PHP语法基础
2016/01/01 PHP
Ajax和PHP正则表达式验证表单及验证码
2016/09/24 PHP
php实现的简单数据库操作Model类
2016/11/16 PHP
php redis实现文章发布系统(用户投票系统)
2017/03/04 PHP
PHP文件操作实例总结【文件上传、下载、分页】
2018/12/08 PHP
event对象的方法 兼容多浏览器
2009/06/27 Javascript
JS隐藏参数post传值实例
2013/04/18 Javascript
jquery对dom的操作常用方法整理
2013/06/25 Javascript
javascript版的in_array函数(判断数组中是否存在特定值)
2014/05/09 Javascript
jquery 中的each()跳出循环的语句
2014/05/23 Javascript
理解JavaScript表单的基础知识
2016/01/25 Javascript
javascript之Boolean类型对象
2016/06/07 Javascript
浅谈angular2的http请求返回结果的subcribe注意事项
2017/03/01 Javascript
利用jQuery实现一个简单的表格上下翻页效果
2017/03/14 Javascript
bootstrap如何让dropdown menu按钮式下拉框长度一致
2017/04/10 Javascript
使用watch在微信小程序中实现全局状态共享
2019/06/03 Javascript
js简单的分页器插件代码实例
2019/09/11 Javascript
微信小程序canvas开发水果老虎机的思路详解
2020/02/07 Javascript
vue中实现图片压缩 file文件的方法
2020/05/28 Javascript
Vue通过provide inject实现组件通信
2020/09/03 Javascript
原生JavaScript实现进度条
2021/02/19 Javascript
[47:52]完美世界DOTA2联赛PWL S2 PXG vs InkIce 第二场 11.26
2020/11/30 DOTA
python实现带验证码网站的自动登陆实现代码
2015/01/12 Python
Python3实现的字典遍历操作详解
2018/04/18 Python
在python 不同时区之间的差值与转换方法
2019/01/14 Python
python中使用ctypes调用so传参设置遇到的问题及解决方法
2019/06/19 Python
Django密码系统实现过程详解
2019/07/19 Python
python 实现矩阵按对角线打印
2019/11/29 Python
浅谈tensorflow使用张量时的一些注意点tf.concat,tf.reshape,tf.stack
2020/06/23 Python
python中pdb模块实例用法
2021/01/15 Python
英国健康和美容技术产品购物网站:CurrentBody
2019/07/17 全球购物
淘宝好评语大全
2014/05/05 职场文书
Python OpenCV快速入门教程
2021/04/17 Python