我想通過使用jsch庫的sftp下載文件。我成功地做到了這一點,但我只想下載文件,如果它尚未下載。我正在收集條目列表,並嘗試實施哈希集以檢查它們是否已被下載。問題是,它將重複項添加到哈希集並重新下載所有文件。以下是我寫的代碼(以及重要部分)。HashSet正在添加重複ChannelSftp.LsEntry
Vector<ChannelSftp.LsEntry> list = sftpChannel.ls("*.gz");
for (ChannelSftp.LsEntry entry : list) {
if (set.add(entry)) {
sftpChannel.get(entry.getFilename(), fileDestination);
}
}
這是所有的方法。所以,當我再次調用該方法時,它應該只下載我以前沒有下載過的文件。但是,這不是那樣做的。有什麼建議麼?請讓我知道是否需要澄清任何事情。
這一切都取決於「等於」爲「用GetFileName()」 – bmargulies 2013-02-13 12:12:59
1的結果值的定義)檢查如何ChannelSftp .LsEntry.hashCode()和equals()方法被實現。也許這個類不適合作爲散列結構鍵。 2)檢查設定變量的範圍。它真的記得以前的電話嗎? – 2013-02-13 12:14:08