Partager via


Guide pratique pour lire des fichiers binaires en Visual Basic

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

Pour lire à partir d’un fichier binaire

  • Utilisez la ReadAllBytes méthode, 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 Read méthode de l’objet FileStream pour lire à partir du fichier uniquement une quantité spécifiée à la fois. Vous pouvez ensuite limiter la quantité de fichier chargée 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 fichier lue en mémoire par 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 robuste

Les conditions suivantes peuvent entraîner la levée d’une exception :

  • Le chemin d’accès n’est pas valide pour l’une des raisons suivantes : il s’agit d’une chaîne de longueur nulle, il contient uniquement des espaces blancs, il contient des caractères non valides ou il s’agit d’un chemin d’accès d’appareil (ArgumentException).

  • Le chemin d’accès n’est pas valide, car il est Nothing (ArgumentNullException).

  • Le fichier n’existe pas (FileNotFoundException).

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

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

  • Un nom de fichier ou de répertoire dans le chemin contient un signe deux-points (:) ou est dans un format non valide (NotSupportedException).

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

  • L’utilisateur ne dispose pas des autorisations nécessaires pour afficher le chemin d’accès (SecurityException).

Ne prenez pas de décisions sur le contenu du fichier en fonction du nom du fichier. 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 contenu du fichier peut ne pas être ce qui est attendu, et les méthodes à lire à partir du fichier peuvent échouer.

Voir aussi