我想在 vb.net 的一个目录中找到所有目录。
我找到了一个脚本:
For Each Dir As String In Directory.GetDirectories(FolderName)
ComboBox3.Items.Add(Dir)
Next
它返回路径的全名,但我希望它只返回路径的名称。
最简单的方法是使用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
(显然,您可以手动解析它并提取出最后一个'\'之后的文本,但我相信上面的内容更具可读性)
我认为最简单的方法是使用从目录全名的开头String.Replace
删除。FolderName
For Each Dir As String In System.IO.Directory.GetDirectories(FolderName)
ComboBox3.Items.Add(Dir.Replace(FolderName, String.Empty))
Next
使用它仅获取目录名称:
dirName = IO.Path.GetDirectoryName(fullPath)
试试这个
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 实际执行的功能这一事实。
For Each Dir As String In Directory.GetDirectories(FolderName)
ComboBox3.Items.Add(IO.Path.GetFileName(Dir))
Next