ProgressBar bei Datei

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Astharey.

    ProgressBar bei Datei

    Hallo,

    ich habe hier eine vorgefertigte ProgressBar gefunden und diese versucht, auf meinen Code zu übertragen. Leider klappt's nicht so ganz, das Programm schließt sicher immer mit einer "ungültigen Pfadangabe". Hat jemand eine Idee?

    VB.NET-Quellcode

    1. ProcessBar.Value = 65
    2. ' Es gilt hier zu beachten, dass der Maximumwert ein Integer ist und
    3. ' daher die Length-Angabe über dem Bereich des Integer hinaus liegen kann.
    4. ' In so einem Fall müsste man den Maximumwert anders definieren
    5. ProcessBar.Maximum = 100
    6. Try
    7. ' Quelle
    8. Dim fsmsource As FileStream
    9. ' Zieldatei
    10. Dim fsmtarget As FileStream
    11. ' Größe des bei jedem Durchlauf einzulesenden Datenpaketes
    12. Dim buffersize As Int32 = 1024 * 30 ' (30 KByte)
    13. ' Enthält nacher die in buffersize angegeben Menge an
    14. ' eingelesenen Daten
    15. Dim buffer(buffersize) As Byte
    16. ' Ermittelt die tatsächliche eingelesene Menge an Daten
    17. ' im Bytearray readbyte
    18. Dim readbyte As Int32
    19. ' Quelldatei
    20. fsmsource = New FileStream(sourcedir_path.Text & "\Resource\CD2.GOB", FileMode.Open, _
    21. FileAccess.Read, FileShare.Read)
    22. ' Zieldatei
    23. fsmtarget = New FileStream(targetdir_path.Text & "\Resource\CD2.GOB", _
    24. FileMode.OpenOrCreate, FileAccess.Write)
    25. ' Daten nach und nach einlesen und im Zielstream wieder zurückschreiben
    26. While fsmsource.Position < fsmsource.Length
    27. ' Quelle einlesen
    28. readbyte = fsmsource.Read(buffer, 0, buffersize)
    29. ' In das Ziel schreiben
    30. fsmtarget.Write(buffer, 0, readbyte)
    31. ' Value Eigenschaft der Progressbar anpassen, das Label gibt
    32. ' den prozentualen Fortschritt an
    33. With ProcessBar
    34. .Value += readbyte
    35. End With
    36. ' Reporten
    37. Application.DoEvents()
    38. End While
    39. ' Streams schließen
    40. fsmsource.Close()
    41. fsmtarget.Close()
    42. Catch ex As Exception
    43. MsgBox(ex.Message, MsgBoxStyle.Critical, "Error")
    44. End Try


    Vielen Dank.

    Gruß
    Ressourcen lassen sich nicht mit einem FileStream öffnen / kopieren.
    Such mal im Forum nach Ressourcen extrahieren.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Danke für die Antwort.

    Es handelt sich um 'ne Datei auf 'ner CD, nicht um eine Resource im Projekt, das meinst du doch, oder? "Resource" ist lediglich der Ordner auf der CD-Rom, woraus diese Datei (CD2.GOB) in einen vom Benutzer festgelegten Ordner kopiert werden soll. sourcedir_path.Text ist nur der Laufwerksbuchstabe mit Schrägstrich, z.B. E:\

    Gruß
    Dann schreib doch den gesamten Pfad rein oder nimm eine Variable, in die Du den gesamten Pfad reinpackst.
    Die kannst Du Dir auch ansehen, ob der Pfad syntaktisch richtig ist.
    Dann sollte es gehen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!