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大牛指点。

以上是 Nodejs实现多文件夹文件同步 的全部内容, 来源链接: utcz.com/z/333007.html

回到顶部