2

我想在 vb.net 的一个目录中找到所有目录。

我找到了一个脚本:

For Each Dir As String In Directory.GetDirectories(FolderName)
    ComboBox3.Items.Add(Dir)
Next

它返回路径的全名,但我希望它只返回路径的名称。

4

5 回答 5

6

最简单的方法是使用System.IO.DirectoryInfo

    For Each Dir As String In System.IO.Directory.GetDirectories(FolderName)
        Dim dirInfo As New System.IO.DirectoryInfo(Dir)
        ComboBox3.Items.Add(dirInfo.Name)
    Next

(显然,您可以手动解析它并提取出最后一个'\'之后的文本,但我相信上面的内容更具可读性)

于 2013-07-10T10:25:54.473 回答
1

我认为最简单的方法是使用从目录全名的开头String.Replace删除。FolderName

For Each Dir As String In System.IO.Directory.GetDirectories(FolderName)
    ComboBox3.Items.Add(Dir.Replace(FolderName, String.Empty))
Next
于 2013-07-10T10:26:43.110 回答
1

使用它仅获取目录名称:

dirName = IO.Path.GetDirectoryName(fullPath)
于 2013-07-10T10:28:57.007 回答
0

试试这个

    For Each d As String In IO.Directory.GetDirectories(FolderName)
        'IO.Path.GetFileName
        'The characters after the last directory character in path.
        ComboBox3.Items.Add(IO.Path.GetFileName(d))
    Next

这利用了您拥有目录列表以及 IO.Path.GetFileName 实际执行的功能这一事实。

于 2013-07-10T11:00:50.983 回答
0
  For Each Dir As String In Directory.GetDirectories(FolderName)
        ComboBox3.Items.Add(IO.Path.GetFileName(Dir))
  Next
于 2018-12-15T10:51:01.733 回答