Compartir a través de


Cómo: Leer archivos binarios en Visual Basic

El My.Computer.FileSystem objeto proporciona el ReadAllBytes método para leer archivos binarios.

Para leer desde un archivo binario

  • Use el ReadAllBytes método , que devuelve el contenido de un archivo como una matriz de bytes. En este ejemplo se lee el archivo 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))
    
  • En el caso de archivos binarios grandes, puede usar el Read método del FileStream objeto para leer desde el archivo solo una cantidad especificada a la vez. A continuación, puede limitar la cantidad de archivos que se cargan en memoria para cada operación de lectura. En el ejemplo de código siguiente se copia un archivo y se permite al autor de la llamada especificar la cantidad de archivo que se lee en la memoria por operación de lectura.

    ' 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
    

Programación sólida

Las condiciones siguientes pueden provocar una excepción:

  • La ruta de acceso no es válida por uno de los siguientes motivos: es una cadena de longitud cero, contiene solo espacios en blanco, contiene caracteres no válidos o es una ruta de acceso del dispositivo (ArgumentException).

  • La ruta de acceso no es válida porque es Nothing (ArgumentNullException).

  • El archivo no existe (FileNotFoundException).

  • Otro proceso usa el archivo o se produce un error de E/S (IOException).

  • La ruta de acceso supera la longitud máxima definida por el sistema (PathTooLongException).

  • Un nombre de archivo o directorio en la ruta de acceso contiene dos puntos (:) o tiene un formato no válido (NotSupportedException).

  • No hay suficiente memoria para escribir la cadena en el búfer (OutOfMemoryException).

  • El usuario carece de permisos necesarios para ver la ruta de acceso (SecurityException).

No tome decisiones sobre el contenido del archivo en función del nombre del archivo. Por ejemplo, es posible que el archivo Form1.vb no sea un archivo de código fuente de Visual Basic.

Compruebe todas las entradas antes de usar los datos de la aplicación. Es posible que el contenido del archivo no sea lo que se espera y que se produzcan errores en los métodos que se leen desde el archivo.

Consulte también