[英]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.