Один и тот же файл разных хэшей md5 - PullRequest
0 голосов
/ 12 июня 2018

У меня есть приложение winforms, где я могу загрузить файл .csv.Я вычисляю хэш файла для загруженного файла .csv.Если содержимое файла изменилось, я отображаю окно сообщения о том, что данные файла изменились.

Я знаю, как вычислять хэши файлов, но вроде как застрял с тем, как сохранить хэш старого файла того же файла и затем сравнить его с хэшем нового файла того же файла.

static bool FileHashesAreEqual(FileInfo fileName)
{
     byte[] firstHash = MD5.Create().ComputeHash(firstName.OpenRead());
     var oldFileHash = firstHash;

     for (int i = 0; i < oldFileHash.Length; i++)
     {
         // Unable to figure out how to compare newFileHash and the oldFileHash
         //if (oldFileHash[i] != newFileHash[i])
         return false;
     }

     return true;
 }

Любая помощь в том, как это сделать, очень ценится.

1 Ответ

0 голосов
/ 12 июня 2018

Я получил его на работу.Спасибо всем за ваши идеи и комментарии.

private bool FileHashesAreEqual(FileInfo fileName)
{
    byte[] firstHash = MD5.Create().ComputeHash(fileName.OpenRead());

    if (!this.fileHashDictionary.ContainsKey(fileName.Name))
    {
        this.fileHashDictionary.Add(fileName.Name, firstHash.ToString());
    }
    else
    {
        if (this.fileHashDictionary.TryGetValue(fileName.Name, out var value))
        {
            if (value != null)
            {
               for (var index = 0; index < value.Length; index++)
               {
                   if (value[index] != firstHash[index])
                   {
                       return false;
                   }
                }
             }
         }
    }

    return true;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...