我的目錄結構如下所示。如何使用vb.net獲取指定路徑中的所有目錄和子目錄的列表
父目錄
--- Sub目錄1 --- Sub目錄2 ------子directory2a ------子directory2b --- Sub目錄3
我正在寫在VB.net獲取所有的目錄名稱(包括所有級別的子目錄)
但是,雖然使用directory.getfilesystementries(路徑)我只得到頂級子目錄。有關如何獲取所有子級別的所有子目錄名稱的想法?
我的目錄結構如下所示。如何使用vb.net獲取指定路徑中的所有目錄和子目錄的列表
父目錄
--- Sub目錄1 --- Sub目錄2 ------子directory2a ------子directory2b --- Sub目錄3
我正在寫在VB.net獲取所有的目錄名稱(包括所有級別的子目錄)
但是,雖然使用directory.getfilesystementries(路徑)我只得到頂級子目錄。有關如何獲取所有子級別的所有子目錄名稱的想法?
只是用這樣的:
Dim result = System.IO.Directory.EnumerateDirectories(path, "*", System.IO.SearchOption.AllDirectories)
的伎倆是SearchOption.AllDirectories
BTW:你可以做同樣的你的GetFileSystemEntries法
您需要使用的重載版本Directory.GetFileSystemEntries指定是否要搜索子目錄:
Dim allDirectories As String() = Directory.GetFileSystemEntries("path", "*", SearchOption.AllDirectories)
Directory.GetFileSystemEntries Method (String, String, SearchOption)
的DirectoryInfo對象可以提供各種信息和目錄,包括目錄/文件甚至系統文件
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Dim dir As New DirectoryInfo("C:\")
For Each dirItem As DirectoryInfo In dir.GetDirectories
MsgBox(dirItem.Name)
Next
End Sub
Dim di As New DirectoryInfo(FolderName)
di = New DirectoryInfo(path)
rgFiles = di.GetFiles("*.*", IO.SearchOption.AllDirectories)
For Each fi As FileInfo In rgFiles
If CheckIfExist(fi.FullName.ToString.Replace("\" & fi.Name, "")) = False Then
ListBox1.Items.Add(fi.FullName.ToString.Replace("\" & fi.Name, ""))
End If
Next
Public Function CheckIfExist(ByRef Path As String) As Boolean
Dim RetVal As Boolean = False
For Each LI As String In ListBox1.Items
If LI.ToString = Path Then
RetVal = True
Return RetVal
Exit Function
End If
Next
Return RetVal
End Function
+1打我2分鐘後,用不同的方式做到這一點,但相同的關鍵部分(SearchOption.AllDirectories :) :) – Tim
謝謝 - 一直髮生在我身上;) – Carsten
只要OP得到他們需要的答案,這一切都很好。 – Tim