Comment : lire des fichiers binaires dans 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 sous forme de tableau d'octets. Cet exemple montre comment lire 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 uniquement une certaine partie du fichier à la fois. Vous pouvez ensuite limiter la partie du 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 partie du fichier à lire 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 lever une exception :
Le chemin d'accès est valide pour une des raisons suivantes : il s'agit d'une chaîne de longueur nulle, 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 d'accès 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 d'accès 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 d'accès (SecurityException).
Ne vous basez pas sur le nom d'un fichier pour en déterminer le contenu. Par exemple, il se peut qu'un fichier nommé Form1.vb ne soit pas 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
Tâches
Comment : lire des fichiers texte avec plusieurs formats dans Visual Basic
Référence
Autres ressources
Lecture à partir de fichiers en Visual Basic
Stockage de données dans le Presse-papiers et lecture du Presse-papiers (Visual Basic)