vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Kopieren mit ProgressBar 
Autor: Manfred X
Datum: 31.07.12 17:06

Hallo!

So etwa?
    Private Sub CopyDir(ByVal SourceFolder As String, _
        ByVal DestinationFolder As String)
 
        With m_ProgressBar
            .Maximum = CInt(GetFolderSize(SourceFolder) \ 1024)
            'eventuell Rückgabe direkt auf 0 abfragen 
            If .Maximum = 0 Then Exit Sub
            .Minimum = 0
            .Value = 0
        End With
 
        For Each file As String In IO.Directory.GetFiles(SourceFolder)
            Copy(New IO.FileInfo(file), DestinationFolder)
        Next file
 
        m_ProgressBar.Value = 0
        m_Label.Text = "0%"
 
    End Sub
 
    Private Function GetFolderSize(ByVal Folder As String) As Long
        Dim l As Long
        For Each file As String In IO.Directory.GetFiles(Folder)
            l += New IO.FileInfo(file).Length
        Next file
        Return l
    End Function
 
    Private Sub Copy(ByVal SourceFile As IO.FileInfo, _
                     ByVal TargetDir As String)
 
        Try
            ' Quelle
            Dim fsmsource As IO.FileStream
            ' Zieldatei
            Dim fsmtarget As IO.FileStream
 
            ' Größe des bei jedem Durchlauf einzulesenden Datenpaketes
            Dim buffersize As Int32 = 1024 * 30 ' (30 KByte)
            Dim buffer(buffersize) As Byte
            Dim readbyte As Int32
 
            ' Quelldatei
            ' Using nutzen
            fsmsource = New IO.FileStream(SourceFile.FullName, _
              IO.FileMode.Open, _
              IO.FileAccess.Read, IO.FileShare.Read)
 
            ' Zieldatei
            fsmtarget = New IO.FileStream(IO.Path.Combine(TargetDir, _
              SourceFile.Name), _
              IO.FileMode.OpenOrCreate, IO.FileAccess.Write)
 
            ' Daten nach und nach einlesen und im Zielstream wieder 
            ' zurückschreiben
            While fsmsource.Position < fsmsource.Length
                ' Quelle einlesen
                readbyte = fsmsource.Read(buffer, 0, buffersize)
 
                ' In das Ziel schreiben
                fsmtarget.Write(buffer, 0, readbyte)
 
                With m_ProgressBar
                    Dim vl As Integer = .Value
                    vl = Math.Min(.Maximum, readbyte \ 1024 + vl)
                    .Value = vl
                    m_Label.Text = CStr(CInt(100 * .Value / .Maximum)) + "%"
                    .Refresh()
                    m_Label.Refresh()
                End With
 
            End While
 
            ' Streams schließen
            fsmsource.Close()
            fsmtarget.Close() 
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Critical, "Error")
        End Try
    End Sub
MfG
Manfred

Beitrag wurde zuletzt am 31.07.12 um 17:30:07 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Kopieren mit ProgressBar3.876ChipPRO Österre...31.07.12 16:04
Re: Kopieren mit ProgressBar3.374Manfred X31.07.12 16:09
Re: Kopieren mit ProgressBar3.393ChipPRO Österre...31.07.12 16:18
Re: Kopieren mit ProgressBar3.773Manfred X31.07.12 17:06
Re: Kopieren mit ProgressBar3.344ChipPRO Österre...31.07.12 17:51
Re: Kopieren mit ProgressBar3.362Manfred X31.07.12 18:05
Re: Kopieren mit ProgressBar3.351ChipPRO Österre...31.07.12 18:12
Re: Kopieren mit ProgressBar3.358Manfred X31.07.12 18:40
Re: Kopieren mit ProgressBar3.330ChipPRO Österre...31.07.12 18:54
Re: Kopieren mit ProgressBar3.291Manfred X31.07.12 19:02
Re: Kopieren mit ProgressBar3.421ChipPRO Österre...31.07.12 19:04
Re: Kopieren mit ProgressBar3.301sv0001031.07.12 19:31
Re: Kopieren mit ProgressBar3.348ChipPRO Österre...31.07.12 19:42

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel