[英]Visual basic 2010 - Can't list directories without showing the path
这是我的代码:
Sub DataLoad()
Dim DirList As New ArrayList
GetDirectories("C:\Surf\Oversigt\", DirList)
For Each item In DirList
ListBox4.Items.Add(item)
Next
End Sub
Sub GetDirectories(ByVal StartPath As String, ByRef DirectoryList As ArrayList)
Dim Dirs() As String = Directory.GetDirectories(StartPath)
DirectoryList.AddRange(Dirs)
For Each Dir As String In Dirs
GetDirectories(Dir, DirectoryList)
Next
End Sub
我只想显示listbox4中目录的名称,而不是目录的整个路径。 现在它将显示如下内容:
C:\\ Surf \\ Oversigt \\ Foldername等
请帮忙
你可以换线
DirectoryList.AddRange(Dirs)
用这条线
DirectoryList.AddRange(Dirs.Select(Function (x) Path.GetFileName(x)).ToArray())
这将以一种不直观的方式使用Path.GetFileName,但是如果调用GetFileName传递完整的路径名,则将获得最后一个文件夹名。
但是我对您的代码有疑问。 这段代码是递归的,如果删除了完整路径,如何识别两个名称相同但位于不同子文件夹中的文件夹?
例如,假设您有一个
C:\Surf\Oversigt\MyFolder
C:\Surf\Oversigt\temp\MyFolder
您最终将在列表框中显示
MyFolder
MyFolder
下线后
Dim Dirs() As String = Directory.GetDirectories(StartPath)
只需更换线
DirectoryList.AddRange(Dirs)
同
For Each Dir As String In Dirs
DirectoryList.Add(Dir.Substring(Dir.LastIndexOf("\") + 1))
Next
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.