Поиск файлов по папке и подпапкам (поправить код) - Visual Basic .NET
Формулировка задачи:
Есть код поиска файлов по маске:
Во время его работы форма зависает. Как бы его переделать с потоком или BackgroundWorker? Сам пробовал - не получилось.
Решение задачи: «Поиск файлов по папке и подпапкам (поправить код)»
textual
Листинг программы
Imports System.Threading Public Class Form1 Public Class Param Private _Fold As String Private _Mask As String Public Property Fold As String Get Return _Fold End Get Set(value As String) _Fold = value.ToString End Set End Property Public Property Mask As String Get Return _Mask End Get Set(value As String) _Mask = value.ToString End Set End Property End Class Private Delegate Sub Add_Range(ByVal T As String) Private Sub Write_2_lst(ByVal T As String) If Not (InvokeRequired) Then ListBox1.Items.Add(T) Else Invoke(New Add_Range(AddressOf Write_2_lst), T) End If End Sub Private Sub Search(p As Param) Dim Dirs() As String Dim files() As String Try files = System.IO.Directory.GetFiles(p.Fold, p.Mask) For i = 0 To files.Length - 1 Write_2_lst(files(i)) Next Catch End Try Try Dirs = System.IO.Directory.GetDirectories(p.Fold, "*", IO.SearchOption.TopDirectoryOnly) If Not Dirs Is Nothing Then For Each cdir In Dirs Dim p1 As New Param p1.Fold = cdir p1.Mask = p.Mask Search(p1) Next End If Catch End Try End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim p As New Param p.Fold = "C:\" p.Mask = "*.png" Dim th As New Thread(AddressOf Search) th.Start(p) End Sub End Class
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д