【发布时间】:2017-10-26 15:52:12
【问题描述】:
我正在用 Java 实现一个文件传输工具,它将传输一些“X”号。文件,其中“X”可由用户从一个 SFTP 服务器配置到另一个。传输位有效,但它可能会拾取重复文件(逻辑尚未到位)。
现在 SFTP_source 服务器每天接收数十万个文件,我无法弄清楚如何执行快速搜索以避免在源服务器上这个庞大的文件列表中重复文件传输。
或者还请建议是否有更好、更快的方法来实现这一目标,而无需执行昂贵的搜索操作?如果通过文件名搜索是唯一的方法,那么使用什么搜索范例?
谢谢。
【问题讨论】:
-
你尝试过什么“搜索范式”?为什么你认为它很慢并且应该改进?伪代码或实际代码更好,因为它会吸引更好的答案。
-
@tucuxi:目前,我正在查看列出超过 600 万个文件的服务器目录。我太不知所措了,我不想去想。简而言之,我还没有尝试过任何东西。但作为事后的想法,我打算在“哈希图”中列出目录中的所有文件,然后简单地遍历它以查找重复项。我提出了这个问题,以便了解是否有更聪明的方法可以做到这一点,然后简单地遍历文件列表,考虑到大量文件,这可能会很昂贵。
-
对大的东西要做的第一件事就是把它变小。您可以调整上传过程,以便在每个目录中创建更多目录和更少文件吗?转移文件后能否将它们移动到另一个目录中?
-
@EJP 这是我需要获得业务流程批准的事情,但是是的,这是一个不错的选择,我会尝试向团队提出建议。谢谢。