如何在下载之前检查URL中的重复文件

Fil*_*ška 5 java url file download duplicates

我的计算机上的文件夹中有数千个图像,我试图找出如何检查来自给定URL的文件是否已经下载.有可能吗?

这只给我文件的大小.

URL url = new URL("http://test.com/test.jpg");
url.openConnection().getContentLength();
Run Code Online (Sandbox Code Playgroud)

对于我使用的重复文件

FileUtils.contentEquals(file1, file2)
Run Code Online (Sandbox Code Playgroud)

谢谢您的回答!

Rob*_*ert -2

如果您不下载该文件,则无法将其与其他文件进行比较。

否则,您可以将下载的内容存储在临时文件中:

File temp = new File(FileUtils.getTempDirectory(), "temp");
FileUtils.copyURLToFile(url, temp);
Run Code Online (Sandbox Code Playgroud)

然后循环遍历现有文件并调用:

FileUtils.contentEquals(temp, existingFile)
Run Code Online (Sandbox Code Playgroud)

最后,您可能想要保留或删除临时文件。

当然这不是很快。如果您有数千个文件,您可以将它们的哈希值保存在一个文件中并使用它而不是FileUtils.contentEquals.