Making Directries within directries using for loop

qadeer37

Well-known member
Joined
May 1, 2010
Messages
63
Location
Hyderabad,pakistan
Programming Experience
1-3
Imports System.IO


Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim directory As String
directory = "d:\"

For a As Integer = 1 To 10
Dim folder As String = "1"


IO.Directory.CreateDirectory(directory & folder)
folder = (folder & "\1")

Next


End Sub
End Class

it just creates 1 folder but not other folders with in folder.:(
 
That's because your loop doesn't 'reset' the current directory level.

It all depends on what you are trying to accomplish. This will create ten folders under d:\ from 1 to 10
VB.NET:
''Code A
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     Dim directory As String
     Dim folder As String = "1"
     directory = "d:\"

     For a As Integer = 1 To 10
           folder = ("\" & a.ToString())
           IO.Directory.CreateDirectory(directory & folder)
     Next
End Sub

This will create 10 sub folders.
VB.NET:
''Code B
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     Dim directory As String
     Dim folder As String = "1"
     directory = "d:\"

     For a As Integer = 1 To 10
           folder = ("\" & a.ToString())
           directory &= folder
           IO.Directory.CreateDirectory(directory)
           
     Next
End Sub

The subtle difference is that in code A the directory value never changes. It will always be 'd:\' so therefore it will always create at that level. In code B we have changed it so that the directory level is reset with each iteration so that directory level is now the previously created level.
 
Back
Top