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