Hallo,
ich versuche gerade einen allgemein gültigen algorithmus zu schreiben, der beliebige Dateien (.txt, .exe, jpg, .png, was halt da ist) kopieren soll.
In meinem Testordner sind derzeit Bilder .jpg und .txt dateien. Die Textdateien kopieren funktioniert.
Nur wenn ich jetzt die .jpg Bilder kopiere, dann sind die Dateien nachher korrupt (< 4kb).
Wie kann ich meinen Code so ändern, dass das nicht passiert ? (Encoding vlt irgendwie ? Finde da aber nur was mit streamreader und nicht mit filestream)
Weiterhin sagt er mir, wenn ich versuche diese Bilder zu öffnen, diese seien noch in Benutzung. Beende ich das debuging, dann kann ich darauf zugreifen (dann kommt Anzeige = Bild fehlerhaft); obwohl ich die filestream schließe ? Wo ist da mein (Denk-) Fehhler ?
Informationen bezügl. Variablen / System:
Windows 7 X64
Visual Basic 2010 Express
progressbar1 ist die Progressbar
die Dateien hab ich alle in einem array, die ich dann in einer for-Schleife durch den unten stehenden algorithmus jage.
Danke für eure Hilfe
ich versuche gerade einen allgemein gültigen algorithmus zu schreiben, der beliebige Dateien (.txt, .exe, jpg, .png, was halt da ist) kopieren soll.
In meinem Testordner sind derzeit Bilder .jpg und .txt dateien. Die Textdateien kopieren funktioniert.
Nur wenn ich jetzt die .jpg Bilder kopiere, dann sind die Dateien nachher korrupt (< 4kb).
Wie kann ich meinen Code so ändern, dass das nicht passiert ? (Encoding vlt irgendwie ? Finde da aber nur was mit streamreader und nicht mit filestream)
Weiterhin sagt er mir, wenn ich versuche diese Bilder zu öffnen, diese seien noch in Benutzung. Beende ich das debuging, dann kann ich darauf zugreifen (dann kommt Anzeige = Bild fehlerhaft); obwohl ich die filestream schließe ? Wo ist da mein (Denk-) Fehhler ?
Informationen bezügl. Variablen / System:
Windows 7 X64
Visual Basic 2010 Express
progressbar1 ist die Progressbar
die Dateien hab ich alle in einem array, die ich dann in einer for-Schleife durch den unten stehenden algorithmus jage.
Code:
Public Sub copyfilewithprogress(ByVal origin As String, ByVal destin As String)
Dim fi As New IO.FileInfo(origin)
Dim sr As New IO.FileStream(origin, IO.FileMode.Open)
Dim sw As New IO.FileStream(destin, IO.FileMode.Create)
Dim len As Long = sr.Length - 1
For i As Long = 0 To len
sw.WriteByte(sr.ReadByte)
If i Mod 1000 = 0 Then
ProgressBar1.Value = i * 100 / len
Application.DoEvents()
Progressbar1.refresh()
End If
Next
ProgressBar1.Value = 0
sr.Close()
sw.Close()
End Sub
Danke für eure Hilfe