Если файл занят, то выскакивает ошибка - C#
Формулировка задачи:
У меня прога написана на хеширование значений.
Процесс хеширования очень долгий и я не знаю, когда она завершится (хеш записывает в блокнот).
После хеширования мне нужно найти одинаковую сумму (коллизия).
Когда я запускаю функцию поиска выскакивает ошибка т.к. файл занят процессом хеширования.
Код поиска дубликатов:
Скрин ошибки, если файл занят:
Вопрос: Можно ли добавить статус процесса хеширования? Если да, то какой код. Какой код нужен кнопке, если допустим файл занят, то Выскакивает Message.Box.Show?
Код хеширования:
Листинг программы
- public string GetMD5(string text)
- {
- MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
- md5.ComputeHash(ASCIIEncoding.ASCII.GetBytes(text));
- byte[] result = md5.Hash;
- StringBuilder str = new StringBuilder();
- for (int i = 0; i < 9; i++)
- {
- str.Append(result[i].ToString("x2"));
- }
- return str.ToString();
- }
- private void button1_Click(object sender, EventArgs e)
- {
- textBox4.Text +=DateTime.Now + " Запущен процесс хеширования" + Environment.NewLine;
- StreamWriter write = new StreamWriter("md5.txt", true);
- for (int i = 0; i < 9999; i++)
- {
- write.WriteLine(GetMD5(i.ToString()));
- }
- }
Листинг программы
- private void button2_Click(object sender, EventArgs e)
- {
- textBox4.Text += DateTime.Now + " Запущен поиск дубликатов" + Environment.NewLine;
- List<string> lines = File.ReadAllLines("md5.txt").ToList();
- for (int i = 0; i < lines.Count; ++i)
- {
- int count = lines.Count(str => str == lines[i]);
- if (count > 1)
- {
- textBox3.Text +=
- (string.Format(
- "Строка '{0}' повторяется {1} раз(-а)",
- lines[i], count)
- ) + Environment.NewLine;
- lines.Remove(lines[i]);
- }
- }
- }
Решение задачи: «Если файл занят, то выскакивает ошибка»
textual
Листинг программы
- using (StreamWriter write = new StreamWriter("md5.txt", true))
- {
- for (int i = 0; i < 9999; i++)
- {
- write.WriteLine(GetMD5(i.ToString()));
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д