Condividi tramite


Procedura: leggere da file binari in Visual Basic

L'oggetto My.Computer.FileSystem fornisce il metodo ReadAllBytes per la lettura da file binari.

Per leggere da un file binario

  • Utilizzare il metodo ReadAllBytes, che restituisce il contenuto di un file come una matrice di byte.In questo esempio viene eseguita la lettura dal file 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))
    
  • Per file binari di grandi dimensioni, è possibile utilizzare il metodo Read dell'oggetto FileStream per leggere solo una parte specificata del file per volta.È quindi possibile limitare la parte del file caricata nella memoria per ogni operazione di lettura.Nell'esempio di codice seguente viene copiato un file e viene consentito al chiamante di specificare la parte di file letta nella memoria per l'operazione di lettura.

    ' 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
    

Programmazione efficiente

Le seguenti condizioni possono causare la generazione di un'eccezione:

  • Il percorso non è valido per uno dei seguenti motivi: è una stringa di lunghezza zero, contiene solo spazi vuoti, contiene caratteri non validi o è il percorso di un dispositivo (ArgumentException).

  • Il percorso non è valido in quanto Nothing (ArgumentNullException).

  • Il file non esiste (FileNotFoundException).

  • Il file è utilizzato da un altro processo o si è verificato un errore di I/O (IOException).

  • La lunghezza del percorso supera la lunghezza massima definita dal sistema (PathTooLongException).

  • Il nome di un file o di una directory nel percorso contiene i due punti (:) o ha un formato non valido (NotSupportedException).

  • La memoria disponibile non è sufficiente per la scrittura della stringa nel buffer (OutOfMemoryException).

  • L'utente non dispone delle autorizzazioni necessarie per visualizzare il percorso (SecurityException).

Non basarsi sul nome del file per prendere decisioni in merito al relativo contenuto.Ad esempio, è possibile che il file Form1.vb non sia un file di origine Visual Basic.

Prima di usare i dati nell'applicazione verificare tutti gli input.È possibile che il contenuto del file non corrisponda a quanto previsto e che quindi i metodi per la lettura dal file non abbiano esito positivo.

Vedere anche

Attività

Procedura: leggere file di testo con più formati in Visual Basic

Riferimenti

ReadAllBytes

WriteAllBytes

Altre risorse

Lettura da file in Visual Basic

Archiviazione e lettura di dati negli Appunti (Visual Basic)