获取VB.net中的所有文件夹/目录列表

5 vb.net

这是我的第一个Stackoverflow问题,我正在学习VB并且在获取系统上所有文件夹/目录的列表时遇到一些问题.我正在使用此处包含的代码,它似乎一直工作,直到它到达回收站文件夹和其他一些系统文件夹

Sub main()

    Dim DirList As New ArrayList
    GetDirectories("c:\", DirList)


    For Each item In DirList
        'add item to listbox or text etc here
    Next

End Sub

Sub GetDirectories(ByVal StartPath As String, ByRef DirectoryList As ArrayList)
    Dim Dirs() As String = Directory.GetDirectories(StartPath)
    DirectoryList.AddRange(Dirs)

    For Each Dir As String In Dirs
        GetDirectories(Dir, DirectoryList)
    Next
End Sub
Run Code Online (Sandbox Code Playgroud)

谁能帮我这个?我想知道是什么原因引起了这个问题,并且是一个很好的修复方法,或者是另一种方法.

提前致谢.

xpd*_*pda 6

不允许访问某些文件夹.您可以使用Try-Catch块 Directory.GetDirectories(StartPath),也可以预先检查文件夹的属性.


小智 5

Try
    Dim Dirs() As String = Directory.GetDirectories(StartPath)
    DirectoryList.AddRange(Dirs)
    For Each Dir As String In Dirs
        GetDirectories(Dir, DirectoryList)
    Next
    Catch ex As Exception
End Try
Run Code Online (Sandbox Code Playgroud)