vb.net - 获取目录中的所有文件夹和子文件夹

标签 vb.net directory

我正在学习 VB.net,我想知道如何获取目录中的所有文件夹和子文件夹,以及如何将它们全部添加到列表框。我还希望它在扫描时列出文件夹,例如显示找到的当前文件夹。我尝试了一些东西,但它们似乎从未奏效。我试过这个:

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
    For Each item In DirectoryList
        ListBox1.Items.Add(item)
    Next
End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim DirList As New ArrayList
    GetDirectories("c:\hexing\", DirList)
End Sub

最佳答案

尝试这个

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Try
    Dim DirList As New ArrayList
    Dim Dirs() As String = Directory.GetDirectories(StartPath)
    DirList.AddRange(Dirs)
    For Each Dir As String In Dirs
        GetDirectories(Dir, DirectoryList)
    Next
    Catch ex As Exception
End Try
End Sub

(或)
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        For Each Dir As String In Directory.GetDirectories("c:\Program Files")
            ListBox1.Items.Add(Dir)
        Next
End Sub

编辑

根据 VB.NET 05, List Folder, SubFolders, and Sub SubFolders :

The most efficient way would be to use recursivity:


 Private Function getAllFolders(ByVal directory As String) As String()
        'Create object
        Dim fi As New IO.DirectoryInfo(directory)
        'Array to store paths
        Dim path() As String = {}
        'Loop through subfolders
        For Each subfolder As IO.DirectoryInfo In fi.GetDirectories()
            'Add this folders name
            Array.Resize(path, path.Length + 1)
            path(path.Length - 1) = subfolder.FullName
            'Recall function with each subdirectory
            For Each s As String In getAllFolders(subfolder.FullName)
                Array.Resize(path, path.Length + 1)
                path(path.Length - 1) = s
            Next
        Next
        Return path
 End Function

关于vb.net - 获取目录中的所有文件夹和子文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21595143/

相关文章:

c# - 让我的 userControl 在工具箱上有自己的图标

python - 同时在不同目录 (os.chdir) 中工作(并行线程)

c# - 我的 ASP.NET 网站中的 aspnet_client 文件夹是什么?

git - .gitignore 目录/通配符意外行为

vb.net - 我如何对 Visual Studio 项目进行代码签名

c# - 可序列化继承

vb.net - 在 vb.net 中将 RichTextBox 内容转换为 Word 而不丢失格式

java - Scala/Java - 未在指定目录内创建文件

bash - 重命名子文件夹中的所有文件 - 替换文件名中的字符串

vb.net - VB.NET 代码到 Linux 平台的转换器是否存在?