我有一個簡單的按鈕,當點擊時填充包含在文本框中的所有子文件夾的列表框。是否有可能執行搜索,因此它只返回一定深度/級別的子文件夾。搜索文件夾到一定的深度,所以不要返回每個子文件夾
例如,而不是:
文件夾1> subfolder1> subfolder2> subfolder3> subfolder4
我可以告訴它只是返回第2級: 文件夾1> subfolder1> subfolder2>
我現在的代碼如下
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
AddFolders(txtsearchdirectory.Text)
End Sub
Private Sub AddFolders(root As String)
ListBox1.Items.Add(root)
Try
For Each folder As String In My.Computer.FileSystem.GetDirectories(root)
AddFolders(folder)
Application.DoEvents()
Next
Catch ex As Exception
System.Windows.Forms.MessageBox.Show(ex.Message)
End Try
End Sub
在這種情況下,Application.DoEvents()的目的是什麼?一般來說,你不想像這樣抽取消息隊列。 –
大量的複製粘貼貨物邪教代碼在這裏。 'DoEvents'是真正的問題,但是吞噬所有異常的catch塊也是一個壞主意。您不需要處理異常來獲取消息框。這會自動發生未處理的異常。只處理你實際上可以......處理的異常。並且不要使用'DoEvents'。這不是一個「保持我的UI響應」功能的神奇功能。此代碼不應該花費足夠長時間才能在後臺線程上運行它。在用戶的大腦處理「點擊」事件時,我可以在機器上迭代整個文件系統。 –