Visual Basic 2010 Ordner Kopieren mit Progressbar

Hallo und guten Abend,
zuerst ich bin ein noob was das Programmieren angeht, aber ich möchte es lernen.

Meine Frage, ich möchte eine Form mit VB 2010 erstellen mit einem Button und einer Statusanzeige.Wenn ich auf den Button Klicke soll eine auswahl kommen, wo ich den Ordner(3Gb) hin kopiert haben möchte und die Statusanzeige soll mir zeigen wann der Kopierforgang zu ende ist.
Das ganze soll von DVD startbar sein.

Ich habe einen spatzielen Ordner „test“(3Gb) der kopiert werden soll an einen beliebigen Ort.

habe schon viel gelesen aber nirgens durchgeblickt.

was ich bis her habe zeigt mir einen fehler.

mein bisheriger SourceCode:
hoffe das darf ich hir reinschreiben?

Public Class Form1

Dim m_Progressbar As Object

Private Property Val As Object

Private Property max As Object

Private Sub Button_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles Button.Click

’ Quelldatei auswählen
Dim sourcefile As FileInfo
With New OpenFileDialog
.Title = „D:\Daten\Neuer Ordner“
If .ShowDialog = Windows.Forms.DialogResult.OK Then
sourcefile = New FileInfo(.FileName)
Else
Exit Sub
End If
End With

’ Zielverzeichnis auswählen
Dim target As String
With New FolderBrowserDialog
.Description = „D:\Daten\test“
If .ShowDialog = Windows.Forms.DialogResult.OK Then
target = .SelectedPath
Else
Exit Sub
End If
End With

’ Kopiervorgang starten
Copy(sourcefile, target)
End Sub

Private Sub Copy(ByVal SourceFile As FileInfo, ByVal Target As String)
’ Progressbar anpassen
Dim i As Integer
ProgressBar1.Value = 0
For i = 0 To 100

Dim j As Integer
For j = 0 To 10000000
Next j

ProgressBar1.Value = i
Label3.Text = i.ToString + „/100“
Next i

’ Es gilt hier zu beachten, dass der Maximumwert ein Integer ist und
’ daher die Length-Angabe über dem Bereich des Integer hinaus liegen kann.
’ In so einem Fall müsste man den Maximumwert anders definieren
ProgressBar1.Maximum = SourceFile.Length

Try
’ Quelle
Dim fsmsource As FileStream
’ Zieldatei
Dim fsmtarget As FileStream

’ Größe des bei jedem Durchlauf einzulesenden Datenpaketes
Dim buffersize As Int32 = 1024 * 30 ’ (30 KByte)

’ Enthält nacher die in buffersize angegeben Menge an
’ eingelesenen Daten
Dim buffer(buffersize) As Byte

’ Ermittelt die tatsächliche eingelesene Menge an Daten
’ im Bytearray readbyte
Dim readbyte As Int32

’ Quelldatei
fsmsource = New FileStream(SourceFile.FullName, FileMode.Open, _
FileAccess.Read, FileShare.Read)

’ Zieldatei
fsmtarget = New FileStream(Target + „“ + SourceFile.Name, _
FileMode.OpenOrCreate, FileAccess.Write)

’ Daten nach und nach einlesen und im Zielstream wieder zurückschreiben
While fsmsource.Position

Hallo LRK, ich bin da ein wenig auf LabView spezialisiert, so das ich dir auf VB2010 keine große Hilfe geben kann.
mfg Norbert