Nodejs實現多文件夾文件同步

 更新時間:2018年10月17日 10:27:13   作者:迦藍葉   我要評論

這篇文章主要為大家介紹了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大牛指點。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Express+Nodejs 下的登錄攔截實現代碼

    Express+Nodejs 下的登錄攔截實現代碼

    本篇文章主要介紹了Express+Nodejs 下的登錄攔截實現代碼,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • WebSocket實現簡單客服聊天系統

    WebSocket實現簡單客服聊天系統

    這篇文章主要為大家詳細介紹了WebSocket實現簡單客服聊天系統,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • node 命令方式啟動修改端口的方法

    node 命令方式啟動修改端口的方法

    今天小編就為大家分享一篇node 命令方式啟動修改端口的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • nodejs使用redis作為緩存介質實現的封裝緩存類示例

    nodejs使用redis作為緩存介質實現的封裝緩存類示例

    這篇文章主要介紹了nodejs使用redis作為緩存介質實現的封裝緩存類,涉及nodejs操作redis進行緩存設置相關操作技巧,需要的朋友可以參考下
    2018-02-02
  • 淺析Node.js非對稱加密方法

    淺析Node.js非對稱加密方法

    本篇文章主要給大家分享了Node.js非對稱加密方法以及代碼實例講解,對此有興趣的朋友參考學習下吧。
    2018-01-01
  • Nodejs--post的公式詳解

    Nodejs--post的公式詳解

    本篇文章主要介紹了Nodejs--post公式的相關知識,具有很好的參考價值。下面跟著小編一起來看下吧
    2017-04-04
  • Node.js中創建和管理外部進程詳解

    Node.js中創建和管理外部進程詳解

    這篇文章主要介紹了Node.js中創建和管理外部進程詳解,本文講解了執行外部命令的方法、子進程相關內容等,需要的朋友可以參考下
    2014-08-08
  • NodeJs模擬登陸正方教務

    NodeJs模擬登陸正方教務

    網上已經有很多關于模擬登陸正方教務的作品了,基于 PHP,Python,Java,.Net 加上NodeJs,這幾門語言都可以實現模擬登陸,模擬登陸的技術點不是特別難,這里記錄一下利用Node碰到的一些坑,以及一些解決思路。
    2017-04-04
  • node.js中的fs.createReadStream方法使用說明

    node.js中的fs.createReadStream方法使用說明

    這篇文章主要介紹了node.js中的fs.createReadStream方法使用說明,本文介紹了fs.createReadStream方法說明、語法、接收參數、使用實例和實現源碼,需要的朋友可以參考下
    2014-12-12
  • NodeJS實現圖片上傳代碼(Express)

    NodeJS實現圖片上傳代碼(Express)

    本篇文章主要介紹了NodeJS實現圖片上傳代碼(Express) ,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06

最新評論

辽宁35选7开奖结果