Просмотр какие папки сканирует программа с выводом пути в Label - Visual Basic .NET
Формулировка задачи:
Всех приветствую.
Есть к примеру такой код:
Поиск по имени файла. При поиске программа как бы зависает.
Суть вопроса:
При выборе диска "C:" а искомый файл находиться например "C:\тест\тест.txt". Как мне допустим в Label1 увидеть какие в данный момент проверяет программа папки (как в антивирусниках строка сканирования например)?
Честно я запарился не магу нечего найти (может не правильно запрашиваю у поиска )
Решение задачи: «Просмотр какие папки сканирует программа с выводом пути в Label»
textual
Листинг программы
Public Class Form1 Dim files() As String Private Sub Search(e As System.ComponentModel.DoWorkEventArgs, ByVal fold As String, ByVal mask As String, ByVal Recur As Boolean) Dim stack As Stack(Of String) = New Stack(Of String) stack.Push(fold) Do 'Цикл начинается If BackgroundWorker1.CancellationPending Then 'Если нажимаем кнопку отмены ТО- e.Cancel = True 'Возвращаем значение для отмены события "BackgroundWorker1" которое проверяется в "BackgroundWorker1_RunWorkerCompleted" Exit Sub End If fold = stack.Pop() 'Если мы не ищем файлы в подпапках то в "stack" будет одна запись и цикл закончится быстро Try files = System.IO.Directory.GetFiles(fold, mask) Label1.Text = fold ' в label1 отображаем текущую папку, в которой происходит поиск If files.Count >= 1 Then TextBox2.Text = files(0) 'при первом совпадении с маской поиска результат заносится в textbox2 и поиск прекращаается Exit Sub End If If Recur Then 'Если необходимо сканировать подпапки For Each folder In IO.Directory.GetDirectories(fold) stack.Push(folder) Next End If Catch ex As Exception End Try Loop Until stack.Count = 0 End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim FBD3 As New FolderBrowserDialog If FBD3.ShowDialog = Windows.Forms.DialogResult.OK Then TextBox1.Text = FBD3.SelectedPath ' выбираем папку и присваиваем textbox1 If BackgroundWorker1.IsBusy = False Then BackgroundWorker1.RunWorkerAsync() 'если BackgroundWorker1 ничем не занят, то мы его запускаем End If End If End Sub Private Sub BackgroundWorker1_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork Search(e, TextBox1.Text, "lnk_remake.exe", True) ' вызов процедуры поиска ' TextBox1.Text - где ищем ' "lnk_remake.exe" - имя файла с расширением, который ищем, можно использовать маску, к примеру, чтобы найти все .txt файлы, необходимо будет указать маску "*.txt" End Sub Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load CheckForIllegalCrossThreadCalls = False End Sub End Class
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д