.NET 4.x Выполнить поиск файла в определённой дериктории по его MD5 сумме - C#
Формулировка задачи:
Здравствуйте: как на си шарпе выполнить поиск файла в определённой дериктории по его мд 5 сумме?
Например:
Есть папка K:\qqqq
программа в этой папке ищет файл с такой мд5 суммой D41D8CD98F0B24E980998ECF8427E
если файл есть ,то прога показывает в виде сообщения что он есть,если нет то пишет что его нет, зарание спс ,весь гугл облазил нечё нет ((((
Решение задачи: «.NET 4.x Выполнить поиск файла в определённой дериктории по его MD5 сумме»
textual
Листинг программы
using System;
using System.IO;
using System.Security.Cryptography;
namespace CA_3
{
class Program
{
public static string ComputeMD5Checksum(string path)
{
FileStream fs = File.OpenRead(path);
MD5 md5 = new MD5CryptoServiceProvider();
byte[] fileData = new byte[fs.Length];
fs.Read(fileData, 0, (int)fs.Length);
byte[] checkSum = md5.ComputeHash(fileData);
return BitConverter.ToString(checkSum).Replace("-", String.Empty);
}
public static void Main(string[] args)
{
string folderPath = "D:\\Folder"; //папка, в которой надо искать
string filePath = "D:\\Folder\\Text.txt" //Файл с хэшами
string md5Hash;//хэш, который надо найти
StreamReader reader = new StreamReader(filePath);
DirectoryInfo dir = new DirectoryInfo(folderPath);
while (!reader.EndOfStream)
{
md5Hash = reader.ReadLine();
bool find = false;
foreach (FileInfo file in dir.GetFiles())
{
if (ComputeMD5Checksum(file.FullName) == md5Hash)
{
Console.WriteLine("Файл {0} имеет искомый хэш {1}", file.FullName, md5Hash);
find = true;
}
}
if (!find)
Console.WriteLine("Файл с хешем {0} не найден", md5Hash);
}
reader.Close();
Console.ReadKey(true);
}
}
}