何らかの理由で、外側のブロックが再帰的に更新されていないと思われます。ループで"C:\Users\Drise"
内のすべてのディレクトリを配列internaldirs()
に追加します。これを行う正しい方法についてのアドバイスは、私はそれを不適切にやっているようだ?再帰的For Eachループdoesntが適切に再帰するようです。
Static internaldirs() As String
internaldirs.add("C:\Users\Drise")
For Each internaldir As String In internaldirs
For Each direc As String In Directory.GetDirectories(internaldir)
internaldirs.Add(direc)
Next
Next
ソリューション:
Sub recursivedirs()
Static internaldirs As New List(Of String)
Try
If internaldirs(0) = "C:\Users\Drise" Then
Call AddDirToList(internaldirs, internaldirs(0))
End If
Catch
internaldirs.Add("C:\Users\Drise")
Call AddDirToList(internaldirs, internaldirs(0))
End Try
End Sub
Private Sub AddDirToList(ByRef dirs As List(Of String), ByVal currentDir As String)
dirs.Add(currentDir)
Try
For Each subDir As String In Directory.GetDirectories(currentDir)
AddDirToList(dirs, subDir)
Next
Catch
End Try
'List(Of String)'を使用する必要があります。 – SLaks