Gewusst wie: Lesen von Binärdateien in Visual Basic

Das My.Computer.FileSystem-Objekt stellt für das Lesen von Binärdateien die ReadAllBytes-Methode bereit.

So lesen Sie eine Binärdatei

  • Verwenden Sie die ReadAllBytes-Methode, die den Inhalt einer Datei als Bytearray zurückgibt. In diesem Beispiel wird aus der Datei C:/Documents and Settings/selfportrait.jpg gelesen.

    Dim bytes = My.Computer.FileSystem.ReadAllBytes(
                  "C:/Documents and Settings/selfportrait.jpg")
    PictureBox1.Image = Image.FromStream(New IO.MemoryStream(bytes))
    
  • Für große Binärdateien können Sie mit der Read-Methode des FileStream-Objekts jeweils nur eine bestimmte Datenmenge aus der Datei lesen. Anschließend können Sie einschränken, welcher Anteil der Datei pro Lesevorgang in den Arbeitsspeicher geladen werden soll. Im folgenden Codebeispiel wird eine Datei kopiert, und der Aufrufer kann angeben, welche Datenmenge der Datei pro Lesevorgang in den Arbeitsspeicher eingelesen werden soll.

    ' This method does not trap for exceptions. If an exception is 
    ' encountered opening the file to be copied or writing to the 
    ' destination location, then the exception will be thrown to 
    ' the requestor.
    Public Sub CopyBinaryFile(ByVal path As String,
                              ByVal copyPath As String,
                              ByVal bufferSize As Integer,
                              ByVal overwrite As Boolean)
    
        Dim inputFile = IO.File.Open(path, IO.FileMode.Open)
    
        If overwrite AndAlso My.Computer.FileSystem.FileExists(copyPath) Then
            My.Computer.FileSystem.DeleteFile(copyPath)
        End If
    
        ' Adjust array length for VB array declaration.
        Dim bytes = New Byte(bufferSize - 1) {}
    
        While inputFile.Read(bytes, 0, bufferSize) > 0
            My.Computer.FileSystem.WriteAllBytes(copyPath, bytes, True)
        End While
    
        inputFile.Close()
    End Sub
    

Robuste Programmierung

Die folgenden Bedingungen verursachen möglicherweise das Auslösen einer Ausnahme:

  • Der Pfad ist bei einem der folgenden Gründe ungültig: Es handelt sich um eine Zeichenfolge der Länge 0 (null), enthält es nur Leerzeichen, er enthält ungültige Zeichen, oder es handelt es sich um einen Pfad für Geräte (ArgumentException).

  • Der Pfad ist ungültig, da er Nothing ist (ArgumentNullException).

  • Die Datei ist nicht vorhanden (FileNotFoundException).

  • Die Datei wird von einem anderen Prozess verwendet, oder ein E/A-Fehler tritt auf (IOException).

  • Der Pfad überschreitet die im System definierte maximale Länge (PathTooLongException).

  • Der Pfad eines Datei- oder Verzeichnisnamens enthält einen Doppelpunkt (:) oder hat ein ungültiges Format (NotSupportedException).

  • Es ist nicht genügend Arbeitsspeicher vorhanden, um die Zeichenfolge in den Puffer zu schreiben (OutOfMemoryException).

  • Dem Benutzer fehlen die erforderlichen Berechtigungen zum Anzeigen des Pfades (SecurityException).

Beurteilen Sie den Inhalt der Datei nicht anhand des Dateinamens. Bei der Datei Form1.vb handelt es sich zum Beispiel nicht unbedingt um eine Visual Basic-Quelldatei.

Überprüfen Sie alle Eingaben, bevor Sie die Daten in der Anwendung verwenden. Die Datei kann andere Inhalte als erwartet enthalten. Die Methoden zum Lesen aus der Datei können fehlschlagen.

Siehe auch

Aufgaben

Gewusst wie: Lesen aus Textdateien mit mehreren Formaten in Visual Basic

Referenz

ReadAllBytes

WriteAllBytes

Weitere Ressourcen

Lesen aus Dateien in Visual Basic

Speichern von Daten in der Zwischenablage und Lesen von Daten aus der Zwischenablage (Visual Basic)