Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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 archivoC:/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.