nodejs实现文件同步服务器,Nodejs实现多文件夹文件同步

本文实例为大家分享了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大牛指点。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值