Программа-шифратор. Вот пример кода шифрования
public static void EncryptFile(string inputFile, string outputFile, byte[] Key)
{
using (var rijndael = RijndaelManaged.Create())
{
rijndael.IV = IV;
rijndael.Key = Key;
using (var inputStream = File.OpenRead(inputFile))
using (var outputStream = new FileStream(outputFile, FileMode.Create, FileAccess.Write))
using (var encStream = new CryptoStream(outputStream, rijndael.CreateEncryptor(), CryptoStreamMode.Write))
{
inputStream.CopyTo(encStream);
}
}
}
Мне нужно, чтобы по мере шифрования заполнялся ProgressBar. Как я понял:
1) файл до шифрования и после имеет одинаковую длину (
inputStream.Lengh
)
2) когда создаётся выходной поток
outputStream
его изначальная длина
outputStream.Lengh
равна 0. То есть по идее, по мере шифрования у выходного потока увеличивается длина.
Как мне кажется оптимальным решением будет сделать так:
1) Максимальное значение прогресс бара, 100% - это изначальная длина файла
2) Каждую милисекунду считывать длину файла
outputStream
и соответственно обновлять значение прогресс бара.
Проблема: не могу разобраться со считыванием. Как передать в таймер событие tick два потока inputStream и outputStream, чтобы можно было каждую милисекунду считывать данные?
Возможно есть более правильное решение???
Пожалуйста, если не трудно, опишите подробнее, потому что я новичок и не шарю за все фишки :))