1
我正在尋找最簡單的方式來顯示樹狀視圖中的所有驅動器,文件和子文件夾。如果有人有一段代碼來做到這一點,他們不介意分享,我會很感激。顯示樹狀視圖中的所有驅動器,文件和子文件夾
我已經得到了這個代碼,我嘗試使用,但它給了我一個「IOException異常是未處理的」錯誤說「該設備未準備好。」最近下面
Dim folders() As String = IO.Directory.GetDirectories(dir)
線運行時錯誤(後約5-10秒)下面是代碼的其餘部分
Private Sub Main_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim drives As System.Collections.ObjectModel.ReadOnlyCollection(Of IO.DriveInfo) = My.Computer.FileSystem.Drives
Dim rootDir As String = String.Empty
For i As Integer = 0 To drives.Count - 1
rootDir = drives(i).Name
TreeView1.Nodes.Add(rootDir)
PopulateTreeView(rootDir, TreeView1.Nodes(i))
Next
End Sub
Private Sub PopulateTreeView(ByVal dir As String, ByVal parentNode As TreeNode)
Dim folder As String = String.Empty
Try
Dim folders() As String = IO.Directory.GetDirectories(dir)
If folders.Length <> 0 Then
Dim childNode As TreeNode = Nothing
For Each folder In folders
childNode = New TreeNode(folder)
parentNode.Nodes.Add(childNode)
PopulateTreeView(folder, childNode)
Next
End If
Catch ex As UnauthorizedAccessException
parentNode.Nodes.Add(folder & ": Access Denied")
End Try
End Sub
你能告訴我們你試過了什麼,它失敗了嗎?最好先提供一些東西。人們不會只寫你的代碼。 – Kenneth
當然遞歸函數的工作,但如果根拾起這將是緩慢的。 – OneFineDay
你也應該使用EnumerateDirectories而不是GetDirectories因爲你可以開始列舉的結果中返回的所有數據之前。使用GetDirectories,您必須等待通話完成。 –