我想在vb.net中的一个目录中找到所有目录。
我找到了一个脚本:
For Each Dir As String In Directory.GetDirectories(FolderName)
ComboBox3.Items.Add(Dir)
Next
它返回路径的全名,但我希望它只返回路径的名称。
答案 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