Просмотр какие папки сканирует программа с выводом пути в Label - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Всех приветствую. Есть к примеру такой код:
Листинг программы
  1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  2. Try
  3. Dim FBD3 As New FolderBrowserDialog
  4. If FBD3.ShowDialog = Windows.Forms.DialogResult.OK Then
  5. Button1.Enabled = False
  6. TextBox2.Text = FBD3.SelectedPath
  7. TextBox4.Text = IO.Directory.GetFiles(FBD3.SelectedPath, TextBox3.Text, IO.SearchOption.AllDirectories)(0)
  8. Button1.Enabled = True
  9. End If
  10. Catch ex As Exception
  11. End Try
  12. End Sub
Поиск по имени файла. При поиске программа как бы зависает. Суть вопроса: При выборе диска "C:" а искомый файл находиться например "C:\тест\тест.txt". Как мне допустим в Label1 увидеть какие в данный момент проверяет программа папки (как в антивирусниках строка сканирования например)? Честно я запарился не магу нечего найти (может не правильно запрашиваю у поиска )

Решение задачи: «Просмотр какие папки сканирует программа с выводом пути в Label»

textual
Листинг программы
  1. Public Class Form1
  2.     Dim files() As String
  3.     Private Sub Search(e As System.ComponentModel.DoWorkEventArgs, ByVal fold As String, ByVal mask As String, ByVal Recur As Boolean)
  4.         Dim stack As Stack(Of String) = New Stack(Of String)
  5.         stack.Push(fold)
  6.         Do 'Цикл начинается
  7.             If BackgroundWorker1.CancellationPending Then 'Если нажимаем кнопку отмены ТО-
  8.                 e.Cancel = True 'Возвращаем значение для отмены события "BackgroundWorker1" которое проверяется в "BackgroundWorker1_RunWorkerCompleted"
  9.                 Exit Sub
  10.             End If
  11.             fold = stack.Pop() 'Если мы не ищем файлы в подпапках то в "stack" будет одна запись и цикл закончится быстро
  12.             Try
  13.                 files = System.IO.Directory.GetFiles(fold, mask)
  14.                 Label1.Text = fold ' в label1 отображаем текущую папку, в которой происходит поиск
  15.  
  16.                 If files.Count >= 1 Then
  17.                     TextBox2.Text = files(0) 'при первом совпадении с маской поиска результат заносится в textbox2 и поиск прекращаается
  18.                     Exit Sub
  19.                 End If
  20.  
  21.                 If Recur Then 'Если необходимо сканировать подпапки
  22.                     For Each folder In IO.Directory.GetDirectories(fold)
  23.                         stack.Push(folder)
  24.                     Next
  25.                 End If
  26.  
  27.  
  28.             Catch ex As Exception
  29.             End Try
  30.  
  31.         Loop Until stack.Count = 0
  32.     End Sub
  33.     Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  34.         Dim FBD3 As New FolderBrowserDialog
  35.         If FBD3.ShowDialog = Windows.Forms.DialogResult.OK Then
  36.             TextBox1.Text = FBD3.SelectedPath ' выбираем папку и присваиваем textbox1
  37.             If BackgroundWorker1.IsBusy = False Then
  38.                 BackgroundWorker1.RunWorkerAsync() 'если BackgroundWorker1 ничем не занят, то мы его запускаем
  39.             End If
  40.         End If
  41.     End Sub
  42.  
  43.     Private Sub BackgroundWorker1_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
  44.         Search(e, TextBox1.Text, "lnk_remake.exe", True) ' вызов процедуры поиска
  45.         ' TextBox1.Text - где ищем
  46.         ' "lnk_remake.exe" - имя файла с расширением, который ищем, можно использовать маску, к примеру, чтобы найти все .txt файлы, необходимо будет указать маску "*.txt"
  47.  
  48.     End Sub
  49.  
  50.     Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  51.         CheckForIllegalCrossThreadCalls = False
  52.     End Sub
  53. End Class

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.818 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы