查找目录中的所有目录并仅返回名称

时间:2013-07-10 10:21:34

标签: vb.net directory .net

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

我找到了一个脚本:

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

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

5 个答案:

答案 0 :(得分: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

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

答案 1 :(得分:1)

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

For Each Dir As String In System.IO.Directory.GetDirectories(FolderName)
    ComboBox3.Items.Add(Dir.Replace(FolderName, String.Empty))
Next

答案 2 :(得分:0)

使用此选项仅获取目录名称:

dirName = IO.Path.GetDirectoryName(fullPath)

答案 3 :(得分: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实际上做了什么。

答案 4 :(得分:0)

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