【发布时间】:2017-05-02 07:00:23
【问题描述】:
所以伙计们,这就是我所拥有的。
我有一个包含大约 30k 张图片的 1 个文件夹(很久以前的旧备份) 第二个文件夹用作当前备份。
所以我只是想检查第一个文件夹中是否有我在第二个文件夹中没有的图片.. 如果我在文件夹 1 中找到了我已经在文件夹 2 中的图片,那么它将被删除文件夹 1.
我想也许我应该将文件夹 1 中的 1 张图片的磁盘大小与文件夹 2 中的所有图片进行比较。(带有 2 个 for 循环)
但我看到我有 2 张不同的图片,它们的大小完全相同(磁盘上的大小)。 所以我不能真正使用它。
有人知道我该怎么做吗? (请记住,我在文件夹 1 中有大约 30k 张照片,所以算法应该是有效的)ץ
同一张图片有不同的哈希值。 :
using (var md5 = MD5.Create())
{
using (var stream = File.OpenRead("C:/Users/Sam/Desktop/1.jpg"))
{
Console.WriteLine(BitConverter.ToString(md5.ComputeHash(stream)));
}
using (var stream2 = File.OpenRead("C:/Users/Sam/Desktop/2.jpg"))
{
Console.WriteLine(BitConverter.ToString(md5.ComputeHash(stream2)));
}
}
嗨,我确实使用了这个算法: Algorithm to compare two images in C#
但这太慢了。 (将 1 张图像与 100 张其他图像进行比较大约需要 2-3 秒,因此将永远比较所有图像(大约 30k))..
【问题讨论】:
-
嗨。谢谢你的帮助..也许你能解释一下关于exeif-thumbnail的更多信息吗?我对 c# 还是有点陌生,我可以下载一个可以自己完成的程序,我想了解它是如何完成的。