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中exports与module.exports的区别详细介绍
Jan 14 NodeJs
nodejs 实现模拟form表单上传文件
Jul 14 NodeJs
在NodeJS中启用ECMAScript 6小结(windos以及Linux)
Jul 15 NodeJs
Nodejs的express使用教程
Nov 23 NodeJs
nodejs+websocket实时聊天系统改进版
May 18 NodeJs
详解nodejs微信jssdk后端接口
May 25 NodeJs
详解Nodejs之静态资源处理
Jun 05 NodeJs
详解使用vscode+es6写nodejs服务端调试配置
Sep 21 NodeJs
nodejs发送http请求时遇到404长时间未响应的解决方法
Dec 10 NodeJs
nodeJs爬虫的技术点总结
May 13 NodeJs
PHPStorm中如何对nodejs项目进行单元测试详解
Feb 28 NodeJs
关于NodeJS中的循环引用详解
Jul 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中常用编辑器推荐
2007/01/02 PHP
分享PHP守护进程类
2015/12/30 PHP
WordPress特定文章对搜索引擎隐藏或只允许搜索引擎查看
2015/12/31 PHP
PHP生成可点击刷新的验证码简单示例
2016/05/13 PHP
数据结构之利用PHP实现二分搜索树
2020/10/25 PHP
对YUI扩展的Gird组件 Part-1
2007/03/10 Javascript
Javascript倒计时代码
2010/08/12 Javascript
freemarker判断对象是否为空的方法
2015/08/13 Javascript
JS动态增删表格行的方法
2016/03/03 Javascript
BootStrap文件上传样式超好看【持续更新】
2016/05/10 Javascript
浅谈JS正则表达式的RegExp对象和括号的使用
2016/07/28 Javascript
微信小程序自定义对话框弹出和隐藏动画
2018/07/19 Javascript
nodejs搭建本地服务器并访问文件操作示例
2019/05/11 NodeJs
Vue.js下拉菜单组件使用方法详解
2019/10/19 Javascript
原生JavaScript之es6中Class的用法分析
2020/02/23 Javascript
vue实现前端列表多条件筛选
2020/10/26 Javascript
[01:11:35]Liquid vs LGD 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python生成器generator用法实例分析
2015/06/04 Python
python避免死锁方法实例分析
2015/06/04 Python
对python以16进制打印字节数组的方法详解
2019/01/24 Python
10分钟教你用python动画演示深度优先算法搜寻逃出迷宫的路径
2019/08/12 Python
如何使用python传入不确定个数参数
2020/02/18 Python
解决keras使用cov1D函数的输入问题
2020/06/29 Python
Python word文本自动化操作实现方法解析
2020/11/05 Python
selenium携带cookies模拟登陆CSDN的实现
2021/01/19 Python
网页切图的CSS和布局经验与要点
2015/04/09 HTML / CSS
Giuseppe Zanotti美国官方网站:将鞋履视为高级时装般精心制作
2018/02/06 全球购物
美国名表在线商城:Ashford(支持中文)
2019/09/24 全球购物
仓库班组长岗位职责
2013/12/12 职场文书
开工典礼策划方案
2014/05/23 职场文书
《中国梦我的梦》中学生演讲稿
2014/08/20 职场文书
个人四风问题整改措施思想汇报
2014/10/04 职场文书
《社戏》教学反思
2016/02/22 职场文书
导游词之新疆-喀纳斯
2019/10/10 职场文书
MySQL如何构建数据表索引
2021/05/13 MySQL
Django中celery的使用项目实例
2022/07/07 Python