Como: Ler a partir de arquivos binários no Visual Basic
O My.Computer.FileSystem
objeto fornece o ReadAllBytes
método para leitura de arquivos binários.
Para ler a partir de um arquivo binário
Use o
ReadAllBytes
método, que retorna o conteúdo de um arquivo como uma matriz de bytes. Este exemplo lê o arquivoC:/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))
Para arquivos binários grandes, você pode usar o Read método do FileStream objeto para ler do arquivo apenas uma quantidade especificada de cada vez. Em seguida, você pode limitar quanto do arquivo é carregado na memória para cada operação de leitura. O exemplo de código a seguir copia um arquivo e permite que o chamador especifique quanto do arquivo é lido na memória por operação de leitura.
' 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
Programação robusta
As seguintes condições podem fazer com que uma exceção seja lançada:
O caminho não é válido por um dos seguintes motivos: é uma cadeia de caracteres de comprimento zero, contém apenas espaço em branco, contém caracteres inválidos ou é um caminho de dispositivo (ArgumentException).
O caminho não é válido porque é
Nothing
(ArgumentNullException).O ficheiro não existe (FileNotFoundException).
O arquivo está em uso por outro processo ou ocorre um erro de E/S (IOException).
O caminho excede o comprimento máximo definido pelo sistema (PathTooLongException).
Um nome de arquivo ou diretório no caminho contém dois pontos (:) ou está em um formato inválido (NotSupportedException).
Não há memória suficiente para gravar a cadeia de caracteres no buffer (OutOfMemoryException).
O usuário não tem as permissões necessárias para visualizar o caminho (SecurityException).
Não tome decisões sobre o conteúdo do arquivo com base no nome do arquivo. Por exemplo, o arquivo Form1.vb pode não ser um arquivo de origem do Visual Basic.
Verifique todas as entradas antes de usar os dados em seu aplicativo. O conteúdo do arquivo pode não ser o esperado e os métodos para ler o arquivo podem falhar.