Что случилось с моим кодом filesystemwatcher1?
Когда открывается новая программа, Моя программа сканирует эту недавно открытую программу, и если она MD5 существует в локально размещенной базе данных, то должен появиться диалог Detect.vb с надписью "вирус обнаружен".
Однако это не так. По какой-то причине, когда я открываю файл, который я намеренно перечислил в базе данных MD5, когда я открываю его, моя программа начинает работать очень медленно, и диалог никогда не появляется. Что не так с моим кодом?
Private Sub FileSystemWatcher1_Changed(ByVal sender As Object, ByVal e As System.IO.FileSystemEventArgs) Try Detect.Label3.Text = e.FullPath Quarantinevb.ListBox1.Items.Add(Detect.Label3.Text) Me.OpenFileDialog1.FileName = "" Dim scanbox As New TextBox scanbox.Text = My.Computer.FileSystem.ReadAllText(Application.StartupPath & "viruslist.txt").ToString Dim md5 As New MD5CryptoServiceProvider Dim f As New FileStream(e.FullPath, FileMode.Open, FileAccess.Read, FileShare.Read, &H2000) f = New FileStream(e.FullPath, FileMode.Open, FileAccess.Read, FileShare.Read, &H2000) md5.ComputeHash(f) Dim hash As Byte() = md5.Hash Dim buff As New StringBuilder Dim hashByte As Byte For Each hashByte In hash buff.Append(String.Format("{0:X2}", hashByte)) Next f.Close() If scanbox.Text.Contains(buff.ToString) Then Me.OpenFileDialog1.FileName = e.FullPath Detect.Show() Detect.BringToFront() WriteToLog("Virus detected") End If Catch exception1 As Exception ProjectData.SetProjectError(exception1) Dim ex As Exception = exception1 ProjectData.ClearProjectError() End Try End Sub
Примечание: Если я удалю
Dim f As New FileStream(e.FullPath, FileMode.Open, FileAccess.Read, FileShare.Read, &H2000)это дает мне не объявленную ошибку.
Что я уже пробовал:
Пробуем разные способы чтения файлов.
Удаление всех viruslist.txt на моем компьютере и заново создаю файл.
Перечитываю свой код и ищу, все ли правильно.
Richard Deeming
Это что, домашнее задание? Вы, кажется, задаете точно такой же вопрос, что и я. @Helpmecodeplz[^] спрашивал в августе прошлого года.
Вопросы и ответы от Helpmecodeplz - CodeProject[^]
У вас даже есть точно такие же ошибки в вашем коде, поэтому, если это не то, что вам дал ваш учитель, вы должны были скопировать код от другого ученика.