2015-04-02 123 views
0

我在我的服務器中包含一些文件的文件夾。這些都是自動化的,這意味着我們每天都會自動獲取新文件,覆蓋舊文件。所以想要爲這些數據進行備份。如何通過在複製時用當前日期重命名文件來將所有這些文件複製到另一個文件夾中。Javascript自動化文件移動到另一個文件夾

例如:我有一個名爲folder1的文件夾,其中包含4個文件。此文件夾的路徑是home/webapps/project1/folder1

aaa.csv 
bbb.csv 
ccc.csv 
ddd.csv 

現在我想所有這四個文件複製到名爲folder2不同的文件夾。此文件夾的路徑是home/webapps/project1/folder2。在複製這些文件時,我想重命名每個文件並將當前日期添加到文件中。所以我的文件名folder2應該是..

aaa091012.csv 
bbb091012.csv 
ccc091012.csv 
ddd091012.csv 

我想爲此編寫一個腳本使用Javascript。請給我一些想法或與此相關的一些示例腳本。

+0

這是標記'gruntjs'。解決方案是否需要使用grunt? – 2015-04-02 02:47:40

+0

@positlabs是啊,如果我們使用咕嚕它會很好 – 2015-04-02 02:54:26

+0

我假設你搜索npmjs.org並嘗試了你找到的東西?他們是什麼,他們怎麼不夠好? – 2015-04-02 03:52:25

回答

0

你可以試試這個代碼:

var fs = require('fs'); 
var path = require('path'); 

function dateFormat(){ 
    var date = new Date(); 
    var year = (date.getFullYear() + '').slice(2); 
    var month = (date.getMonth() + 1) < 10 ? '0' + (date.getMonth() + 1) : (date.getMonth() + 1); 
    var day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate(); 
    return year+month+day; 
} 
function moveAndRename(sourceDir, destDir){ 
    fs.readdir(sourceDir, function(err, files){ 
     if(err) 
      return err; 
     else { 
      files.forEach(function(file){ 
       var dotIndex = file.lastIndexOf("."); 
       var name = file.slice(0, dotIndex); 

       var newName = (name + dateFormat()) + path.extname(file); 

       var read = fs.createReadStream(path.join(sourceDir, file)); 
       var write = fs.createWriteStream(path.join(destDir, newName)); 
       read.pipe(write); 
      }); 
     } 
    }); 
} 

moveAndRename("/home/webapps/project1/folder1", 
       "/home/webapps/project1/folder2") 

您可以使用此NPM LIB:https://github.com/ncb000gt/node-cron,做一些工作autominate。

+0

感謝您的回覆......是否有任何教程如何執行代碼,並參見 – 2015-04-02 04:53:09

+0

只需將此代碼保存在一個'copy.js'文件中,然後運行' node copy.js' – BlackMamba 2015-04-02 04:59:21

+0

是否可以壓縮文件並通過自動解壓縮到 – 2015-04-02 11:00:32

相關問題