2016-05-05 33 views
1

我是Node.js的noob。我試圖從目錄下載所有文件使用PromiseFtp節點js,PromiseFtp。如何下載目錄的所有文件,然後從ftp中刪除它們

但我有一個問題。我不知道如何開始下載文件。我下一步:

var ftp = new PromiseFtp(); 
    ftp.connect({host: '------', user: '----------', password: '------------'}) 
    .then(function (serverMessage) { 
    console.log('Server message: '+serverMessage); 
    return ftp.list('/'); 
    }).then(function (list) { 
    list.forEach(function (element, index, array) { 
     if (element.name !== '..' && element.name !== '.'){ 
      console.log(element.name) 
     } 
    }) 

    }).then(function() { 
    return ftp.end(); 
    }); 

現在我有文件列表。但我不知道我必須做什麼。下載後,我必須從ftp中刪除所有文件。

請。幫我

回答

0

這是一個例子下載:

var PromiseFtp = require('promise-ftp'); 
    var fs = require('fs'); 

    var ftp = new PromiseFtp(); 
    ftp.connect({host: host, user: user, password: password}) 
    .then(function (serverMessage) { 
    return ftp.get('foo.txt'); 
    }).then(function (stream) { 
    return new Promise(function (resolve, reject) { 
     stream.once('close', resolve); 
     stream.once('error', reject); 
     stream.pipe(fs.createWriteStream('foo.local-copy.txt')); 
    }); 
    }).then(function() { 
    return ftp.end(); 
    }); 

你可以刪除使用delete功能:

刪除(路徑):刪除文件的路徑。退貨承諾 解決未定義。

嘗試編寫下載功能而不是console.log,並在下載/商店代碼調用delete的回調中寫入。

+0

是的,類似的東西。你迭代一組文件,併爲每個元素調用ftp.get()。在每個回調中,您將其存儲並保存後,但在ftp.end之前,您可以將其刪除。 –

+0

我很抱歉,但我仍然無法做到。該腳本運行良好,但文件不下載 – user2497209

+0

@ user2497209,你確定你正在試圖在正確的道路上做到這一點?另外,你確定你有必要的特權來閱讀它們嗎? –

相關問題