Guide pratique pour lire des fichiers binaires en Visual Basic

L’objet My.Computer.FileSystem fournit la méthode ReadAllBytes pour la lecture de fichiers binaires.

Pour lire un fichier binaire

  • Utilisez la méthode ReadAllBytes, qui retourne le contenu d’un fichier en tant que tableau d’octets. Cet exemple lit le fichier C:/Documents and Settings/selfportrait.jpg.

    Dim bytes = My.Computer.FileSystem.ReadAllBytes(
                  "C:/Documents and Settings/selfportrait.jpg")
    PictureBox1.Image = Image.FromStream(New IO.MemoryStream(bytes))
    
  • Pour les fichiers binaires volumineux, vous pouvez utiliser la méthode Read de l’objet FileStream pour lire le fichier bloc par bloc. Vous pouvez alors limiter la quantité de données du fichier chargées en mémoire pour chaque opération de lecture. L’exemple de code suivant copie un fichier et permet à l’appelant de spécifier la quantité de données lues en mémoire pour chaque opération de lecture.

    ' 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
    

Programmation fiable

Les conditions ci-dessous peuvent générer une exception :

  • Le chemin d'accès n'est pas valide pour une des raisons suivantes : il s'agit d'une chaîne de longueur nulle ; il ne contient que des espaces blancs ; il contient des caractères non valides ou il s'agit d'un chemin d'accès de périphérique (ArgumentException).

  • Le chemin n'est pas valide, car il a la valeur Nothing (ArgumentNullException).

  • Le fichier n'existe pas (FileNotFoundException).

  • Le fichier est utilisé par un autre processus, ou une erreur E/S se produit (IOException).

  • Le chemin d'accès dépasse la longueur maximale définie par le système (PathTooLongException).

  • Un nom de fichier ou de répertoire du chemin contient un signe deux-points (:) ou n'a pas un format correct (NotSupportedException).

  • Il n'y a pas assez de mémoire pour écrire la chaîne dans la mémoire tampon (OutOfMemoryException).

  • L'utilisateur n'a pas les autorisations nécessaires pour afficher le chemin (SecurityException).

Ne vous basez pas sur le nom d'un fichier pour en déterminer le contenu. Par exemple, le fichier Form1.vb peut ne pas être un fichier source Visual Basic.

Vérifiez toutes les entrées avant d'utiliser les données dans votre application. Le fichier n'a peut-être pas le contenu attendu, et les méthodes utilisées pour lire le fichier peuvent échouer.

Voir aussi