Megosztás a következőn keresztül:


Útmutató: Olvasás bináris fájlokból a Visual Basicben

Az My.Computer.FileSystem objektum a ReadAllBytes bináris fájlokból való olvasás módszerét biztosítja.

Olvasás bináris fájlból

  • Használja a ReadAllBytes metódust, amely egy fájl tartalmát adja vissza bájttömbként. Ez a példa a fájlból C:/Documents and Settings/selfportrait.jpgolvas be.

    Dim bytes = My.Computer.FileSystem.ReadAllBytes(
                  "C:/Documents and Settings/selfportrait.jpg")
    PictureBox1.Image = Image.FromStream(New IO.MemoryStream(bytes))
    
  • Nagy bináris fájlok esetén az ReadFileStream objektum metódusával egyszerre csak egy megadott mennyiséget olvashat le a fájlból. Ezután korlátozhatja, hogy a fájl mekkora része legyen betöltve a memóriába az egyes olvasási műveletekhez. Az alábbi példakód egy fájlt másol át, és lehetővé teszi a hívó számára, hogy meghatározza, hogy a fájl mekkora részét olvassa be a memóriába olvasási műveletenként.

    ' 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
    

Robusztus programozás

A következő feltételek kivételt okozhatnak:

  • Az elérési út nem érvényes az alábbi okok valamelyike miatt: nulla hosszúságú sztring, csak üres szóközt tartalmaz, érvénytelen karaktereket tartalmaz, vagy eszközútvonal (ArgumentException).

  • Az elérési út érvénytelen, mert (NothingArgumentNullException).

  • A fájl nem létezik (FileNotFoundException).

  • A fájlt egy másik folyamat használja, vagy I/O-hiba történik (IOException).

  • Az elérési út meghaladja a rendszer által megadott maximális hosszt (PathTooLongException).

  • Az elérési út fájl- vagy könyvtárneve kettőspontot tartalmaz (:) vagy érvénytelen formátumú (NotSupportedException).

  • Nincs elég memória a sztring pufferbe írásához (OutOfMemoryException).

  • A felhasználó nem rendelkezik az elérési út (SecurityException) megtekintéséhez szükséges engedélyekkel.

Ne hozzon döntéseket a fájl tartalmáról a fájl neve alapján. Előfordulhat például, hogy a Form1.vb fájl nem Visual Basic-forrásfájl.

Az alkalmazás adatainak használata előtt ellenőrizze az összes bemenetet. Előfordulhat, hogy a fájl tartalma nem felel meg a vártnak, és a fájlból olvasási módszerek sikertelenek lehetnek.

Lásd még