vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 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
Kopieren .... Teil 2 
Autor: Manfred X
Datum: 15.12.12 07:27

    Public Sub SaveFiles()
 
        'Kopier-Routine
 
        Dim sourcefile As FileInfo, filename As String
        If Not Directory.Exists(btnSource.Text) Then Exit Sub
        If Not Directory.Exists(btnDest.Text) Then Exit Sub
        If btnSource.Text.ToUpper = btnDest.Text.ToUpper Then Exit Sub
 
        headline = "" : infotext = "" : progress_value = 0
        bedarf_alt = Long.MaxValue
        Me.Invoke(SetinfoDelegate)
 
        Dim destfileinfos As List(Of FileInfo) =
            New DirectoryInfo(btnDest.Text).GetFiles.ToList
 
        'Liste der zu kopierenden Files erstellen
        Dim tocopy As New List(Of FileInfo), found As Boolean
        Dim bytestocopy As Long = 0
        infotext = "Files werden ermittelt"
        Me.Invoke(SetinfoDelegate)
        For Each sourcefile In New DirectoryInfo(btnSource.Text).GetFiles
            found = False
            filename = sourcefile.Name.ToUpper
            For i As Integer = 0 To destfileinfos.Count - 1
                If destfileinfos(i).Name.ToUpper = filename Then
                    If destfileinfos(i).LastWriteTime < _
                        sourcefile.LastWriteTime Then
                        bytestocopy += sourcefile.Length
                        tocopy.Add(sourcefile)
                        Exit For
                    End If
                    found = True
                End If
            Next i
            If Not found Then
                tocopy.Add(sourcefile)
                bytestocopy += sourcefile.Length 'zu kopierende Bytes
            End If
        Next sourcefile
 
        infotext = ""
        headline = "Zu sichernde Dateien: " & CStr(tocopy.Count)
        Me.Invoke(SetinfoDelegate)
        If tocopy.Count = 0 Then Exit Sub
 
        progress_maximum = CInt(bytestocopy / 1000)
        infotext = "Kopiervorgang gestartet"
        Me.Invoke(SetinfoDelegate)
 
        Dim start As Date = Now, bedarf As Long
 
        For i As Integer = 0 To tocopy.Count - 1
 
            Using fsDest As New IO.FileStream _
            (IO.Path.Combine(btnDest.Text, tocopy(i).Name), _
            IO.FileMode.OpenOrCreate, IO.FileAccess.Write), _
            fsSource As New IO.FileStream _
            (tocopy(i).FullName, IO.FileMode.Open)
 
                Dim buffersize As Int32 = 1024 * 30 ' (30 KByte)
                Dim buffer(buffersize) As Byte
                Dim readbyte As Int32
 
                While fsSource.Position < fsSource.Length
                    readbyte = fsSource.Read(buffer, 0, buffersize)
                    fsDest.Write(buffer, 0, readbyte)
 
                    progress_value = Math.Min(progress_maximum, _
                        progress_value + CInt(readbyte / 1000))
 
                    'Abschätzung des verbleibenden Zeitbedarfs   
                    bedarf = CLng((Now.Ticks - start.Ticks) / _
                    progress_value * (bytestocopy \ 1000 - progress_value))
 
                    If bedarf < bedarf_alt Then
                        infotext = "restlicher Zeit-Bedarf: " & _
                        New TimeSpan(bedarf).ToString("hh\:mm\:ss")
                        bedarf_alt = bedarf
                        Me.Invoke(SetinfoDelegate)
                    End If
 
                End While
            End Using
 
            headline = "Noch zu sichernde Dateien: " & _
                        CStr(tocopy.Count - i - 1)
            Me.Invoke(SetinfoDelegate)
        Next i
 
        progress_value = 0
        infotext = "BackUp beendet"
        Me.Invoke(SetinfoDelegate)
    End Sub
 
End Class


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

 ThemaViews  AutorDatum
Ordner Synchronisieren mit Fortschritt (Progressbar)4.627dj alex z14.12.12 07:45
Re: Ordner Synchronisieren mit Fortschritt (Progressbar)3.717Manfred X14.12.12 21:40
Re: Ordner Synchronisieren mit Fortschritt (Progressbar)3.529dj alex z14.12.12 22:03
Kopieren ..... Teil 13.456Manfred X15.12.12 07:26
Kopieren .... Teil 23.411Manfred X15.12.12 07:27

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