Feedback

VB - Datei Paketweise Kopieren

Veröffentlicht von am 6/26/2006
(1 Bewertungen)
Diese Funktion kopiert eine Datei Paketweise. So funktionieren zwar alle Kopieralgorithmen nur hat man hier die möglichkeit die Paketgröße selber zu bestimmen und man könnte mit ein paar Modifizierungen (z.B. Progressbar) den Koperstatus anzeigen lassen, was bei einer Normalen integrierten Kopierfunktion nicht der Fall ist. Ich habe die Paketgröße standardgemäß auf 50 KB gesetzt weil diese größe sich am besten geeignet hat. Wählt man eine zu große oder zu kleine Paketgröße dann dauert der Kopiervorgang länger.
Imports System.IO

Public Function CopyFile(ByVal Source As String, ByVal Target As String, Optional ByVal BufferSize As Long = 51200) As Boolean
    Try
        Dim SourceFileStream As New FileStream(Source, FileMode.Open)
        Dim TargetFileStream As New FileStream(Target, FileMode.Create)

        Dim Data(BufferSize) As Byte
        Dim Buffer As Long = 0
        Dim BufferCount As Long = 0
        Dim FileSize As Long = SourceFileStream.Length

        Do
            If BufferCount >= FileSize - BufferSize Then
                ReDim Data(FileSize - BufferCount)
                Buffer = SourceFileStream.Read(Data, 0, FileSize - BufferCount)
                TargetFileStream.Write(Data, 0, Buffer)
                Exit Do
            End If

            Buffer = SourceFileStream.Read(Data, 0, BufferSize)
            TargetFileStream.Write(Data, 0, BufferSize)
            BufferCount += Buffer
        Loop
        SourceFileStream.Close()
        TargetFileStream.Close()
    Catch
        Return False
    End Try
End Function
Abgelegt unter Kopieren, Datei, Paket.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!