【发布时间】:2013-07-08 05:40:54
【问题描述】:
我想在 vb.net 的一个目录中查找所有目录。
我找到了一个脚本:
For Each Dir As String In Directory.GetDirectories(FolderName)
ComboBox3.Items.Add(Dir)
Next
它返回路径的全名,但我希望它只返回路径的名称。
【问题讨论】:
我想在 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
【讨论】: