Я работаю над проектом, который использует эту библиотеку C #: https://www.nuget.org/packages/SauceControl.Blake2Fast/
Это алгоритм хеширования.Я пытаюсь получить небольшой тестовый файл для хэширования, но я новичок и давно не программировал.Просто используя
var hash = Blake2b.ComputeHash("C:\\Users\\Username\\Desktop\\files.txt");
Я получаю cannot convert from 'string' to 'System.ArraySegment<byte>'
.
Хорошо, поэтому я предполагаю, что мне нужно прочитать поток файла.Я адаптировал пример и попробовал это:
private void Button2_Click(object sender, EventArgs e)
{
// Specify a file to read from and to create.
string pathSource = @"C:\Users\Username\Desktop\files.txt";
try
{
using (FileStream fsSource = new FileStream(pathSource,
FileMode.Open, FileAccess.Read))
{
// Read the source file into a byte array.
byte[] bytes = new byte[fsSource.Length];
int numBytesToRead = (int)fsSource.Length;
int numBytesRead = 0;
while (numBytesToRead > 0)
{
// Read may return anything from 0 to numBytesToRead.
int n = fsSource.Read(bytes, numBytesRead, numBytesToRead);
// Break when the end of the file is reached.
if (n == 0)
break;
numBytesRead += n;
numBytesToRead -= n;
}
numBytesToRead = bytes.Length;
var hash = Blake2b.ComputeHash(fsSource);
}
}
catch (FileNotFoundException ioEx)
{
Console.WriteLine(ioEx.Message);
}
}
}
Я получаю похожее сообщение cannot convert from 'System.IO.Filestream' to 'System.ArraySegment<byte>'
.
Я планирую написать утилиту, которая получает контрольные суммы файлов с использованием этого алгоритма хеширования.Файлы могут быть маленькими или большими, локальными или на сетевом диске, поэтому мне придется учитывать это.Я просто не совсем уверен, куда идти отсюда.Я действительно только работал с очень простым чтением текстовых файлов, и это было некоторое время назад.Я не знаком с достаточным количеством более продвинутых методов и не уверен, что лучше всего использовать, и как его использовать.
Как я могу заставить этот метод обрабатывать файл, используя заданный путь к файлу?