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异步回调的优雅处理方法
Sep 25 NodeJs
Nodejs极简入门教程(三):进程
Oct 27 NodeJs
学习 NodeJS 第八天:Socket 通讯实例
Dec 21 NodeJs
nodejs连接mysql数据库简单封装示例-mysql模块
Apr 10 NodeJs
nodejs个人博客开发第七步 后台登陆
Apr 12 NodeJs
nodejs集成sqlite使用示例
Jun 05 NodeJs
手把手教你把nodejs部署到linux上跑出hello world
Jun 19 NodeJs
Nodejs中crypto模块的安全知识讲解
Jan 03 NodeJs
原生nodejs使用websocket代码分享
Apr 07 NodeJs
NodeJs项目中关闭ESLint的方法
Aug 09 NodeJs
NodeJS 将文件夹按照存放路径变成一个对应的JSON的方法
Oct 17 NodeJs
NodeJS开发人员常见五个错误理解
Oct 14 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禁止页面缓存的代码
2011/10/23 PHP
PHP连接MongoDB示例代码
2012/09/06 PHP
php中header设置常见文件类型的content-type
2015/06/23 PHP
Smarty使用自定义资源的方法
2015/08/08 PHP
PHP常用的三种设计模式汇总
2016/08/28 PHP
php+ajax无刷新上传图片的实现方法
2016/12/06 PHP
thinkPHP5框架auth权限控制类与用法示例
2018/06/12 PHP
JQuery 插件制作实践 xMarquee插件V1.0
2010/04/02 Javascript
js sort 二维数组排序的用法小结
2014/01/24 Javascript
JavaScript通过setTimeout实时显示当前时间的方法
2015/04/16 Javascript
javascript动态创建链接的方法
2015/05/13 Javascript
基于JavaScript Array数组方法(新手必看篇)
2016/08/20 Javascript
微信小程序实战之运维小项目
2017/01/17 Javascript
微信小程序request请求后台接口php的实例详解
2017/09/20 Javascript
vue cli 全面解析
2018/02/28 Javascript
vue.js 获取select中的value实例
2018/03/01 Javascript
解决webpack多页面内存溢出的方法示例
2019/10/08 Javascript
使用vue打包进行云服务器上传的问题
2020/03/02 Javascript
vue实现页面切换滑动效果
2020/06/29 Javascript
在vue中动态修改css其中一个属性值操作
2020/12/07 Vue.js
在DigitalOcean的服务器上部署flaskblog应用
2015/12/19 Python
python实现彩票系统
2020/06/28 Python
python读取图片的方式,以及将图片以三维数组的形式输出方法
2019/07/03 Python
Django获取应用下的所有models的例子
2019/08/30 Python
python raise的基本使用
2020/09/10 Python
一款CSS3实现多功能下拉菜单(带分享按)的教程
2014/11/05 HTML / CSS
涂鸦板简单实现 Html5编写属于自己的画画板
2016/07/05 HTML / CSS
西班牙高科技产品购物网站:MejorDeseo
2019/09/08 全球购物
致跳远运动员广播稿
2014/02/11 职场文书
报关报检委托书
2014/04/08 职场文书
幼儿园开学通知
2015/04/24 职场文书
十七岁的单车观后感
2015/06/12 职场文书
防震减灾主题班会
2015/08/14 职场文书
如何判断pytorch是否支持GPU加速
2021/06/01 Python
详解Vue slot插槽
2021/11/20 Vue.js
MySQL数据库查询进阶之多表查询详解
2022/04/08 MySQL