I ended up writing my own recursive sub due to the specific requirements I had:
If svnClient.GetList(New Uri(svnUrl), contents) Then
ReDim Preserve node_array(UBound(node_array) + 1)
node_array(UBound(node_array)) = LibraryNode.Text
For Each SubFolder As SvnListEventArgs In contents
Dim MainNode As TreeNode = New TreeNode(SubFolder.Name)
If SubFolder.Name <> "My Top Level Folder" Then
ReDim Preserve node_array(UBound(node_array) + 1)
node_array(UBound(node_array)) = LibraryNode.Text & "\" & MainNode.Text
Dim thelevel As String = LibraryNode.Text & "\" & MainNode.Text
LibraryNode.Nodes.Add(MainNode)
currentlevel = 0
FillTreeViewNodesSVN(SubFolder.Uri.ToString, MainNode, svnClient, thelevel, currentlevel)
End If
Next
End If
The above calls the recursion sub:
Public Sub FillTreeViewNodesSVN(ByVal SubFolder As String, ByVal MainNode As TreeNode, ByVal svnClient As SvnClient, ByVal thelevel As String, ByVal currentlevel As Integer)
Dim contents As Collection(Of SvnListEventArgs)
Dim files As New List(Of String)()
If svnClient.GetList(New Uri(SubFolder), contents) Then
For Each item As SvnListEventArgs In contents
If item.Uri.ToString <> SubFolder And InStr(item.Uri.ToString, "tag") > 0 Then
Dim SubNode As TreeNode = New TreeNode(item.Name)
ReDim Preserve node_array(UBound(node_array) + 1)
node_array(UBound(node_array)) = thelevel & "\" & SubNode.Text
thelevel = thelevel & "\" & SubNode.Text
currentlevel = currentlevel + 1
If currentlevel < 2 Then
FillTreeViewNodesSVN(item.Uri.ToString, SubNode, svnClient, thelevel, currentlevel)
End If
currentlevel = currentlevel - 1
thelevel = thelevel.Replace("\" & SubNode.Text, "")
End If
Next
End If
End Sub
Combined the 2 create a node list of the folders 2 levels deep of ONLY the TAGS folder. This gets me all of the deployed TAGs for a given project.