jsch ライブラリを使用して sftp 経由でファイルをダウンロードしようとしています。私はそれをうまくやっていますが、まだダウンロードされていない場合にのみファイルをダウンロードしたいです。エントリのリストを収集し、ハッシュセットを実装して、それらが既にダウンロードされているかどうかを確認しようとしています。問題は、ハッシュセットに重複を追加し、すべてのファイルを再ダウンロードしていることです。以下は私が書いたコードです (まあ、重要な部分です)。
Vector<ChannelSftp.LsEntry> list = sftpChannel.ls("*.gz");
for (ChannelSftp.LsEntry entry : list) {
if (set.add(entry)) {
sftpChannel.get(entry.getFilename(), fileDestination);
}
}
これはすべてメソッドにあります。そのため、メソッドを再度呼び出すと、以前にダウンロードしていないファイルのみがダウンロードされます。しかし、それはしていません。助言がありますか?何か明確にする必要がある場合はお知らせください。