COMO RETORNAR O TIPO DE ARQUIVO?
amigos estou tentando validar arquivos tipo imagem e não consegui achar uma forma mais enxuta de fazer isso. o Extension do Getfileinfo só retorna a extensão e não o tipo da imagem. tentei tambem criar um objeto Scripting.FileSystemObject e usar o Type mas tambem está retornando a extensão e não o tipo. se eu pegar uma imagem jpg e alterar a extensão dela para exe esses métodos irão dizer que é um aplicativo e não uma imagem. então estou validando pelo jeito abaixo
o problema é que esse método só lê o tipo de imagens e por isso tenho que usar o error para quando for 7, que indica que por ser outro tipo de arquivo dá memória insuficiente, passar o tipo bitmap para false.
o que queria saber é se tem um outro jeito de retornar o tipo de arquivo. muito agradeço.
On Error GoTo TErro
Dim eimagem As Boolean = False
Dim I As Image = Image.FromFile([Ô]F:\My files\PS CS5\Samples\Ducky.tif[Ô])
If I.GetType.Name.ToString = [Ô]Bitmap[Ô] Then
eimagem = True
End If
TErro:
If Err.Number = 7 Then
eimagem = False
End If
MsgBox(eimagem)
o problema é que esse método só lê o tipo de imagens e por isso tenho que usar o error para quando for 7, que indica que por ser outro tipo de arquivo dá memória insuficiente, passar o tipo bitmap para false.
o que queria saber é se tem um outro jeito de retornar o tipo de arquivo. muito agradeço.
e então galera, nadica de nada mesmo por aqui? estou deus desse dia pesquisando e tentando e não acho uma solução. ainda hoje mesmo passei umas horas gugrando essa bagaça em busca de ideias mas nada de nada nadando mesmo hehehe
Imports System.IO
Dim arquivo As String = [Ô]F:\My files\PS CS5\Samples\Ducky.tiff[Ô]
Dim extensão As string = Path.GetExtension(arquivo)
Select Case extensao
Case [Ô]tiff[Ô]
MessageBox.Show([Ô]Extensão: [Ô] & extensao)
Case Else
MessageBox([Ô]Não é uma extensão valida[Ô])
End Select
é só um exemplo, portanto adapte no seu código
é importante separar os conceitos...
Você está querendo achar a extensão de um arquivo ou realmente ler o header do arquivo para saber seu conteúdo binário ?
é importante você deixar claro seu objetivo, se trata-se de pegar a extensão e julgar o que fazer, ou se você quer realmente assegurar o que quer fazer lendo binariamente o arquivo afim de não cometer erros.
O próprio FileSystemObject já oferece métodos prontos para resolver problemas de obter extensão, agora se é conteúdo que você quer determinar realmente a coisa complica bastante.
Você está querendo achar a extensão de um arquivo ou realmente ler o header do arquivo para saber seu conteúdo binário ?
é importante você deixar claro seu objetivo, se trata-se de pegar a extensão e julgar o que fazer, ou se você quer realmente assegurar o que quer fazer lendo binariamente o arquivo afim de não cometer erros.
O próprio FileSystemObject já oferece métodos prontos para resolver problemas de obter extensão, agora se é conteúdo que você quer determinar realmente a coisa complica bastante.
Ou você confia na extensão do arquivo ou você vai ter que saber o formato binário de cada arquivo que precisa identificar, o que torna praticamente impossÃvel reconhecer todos os formatos existentes.
Não existe nada que vá te dizer qual o formato do arquivo independente da extensão, até porque qualquer um pode criar um formato novo de arquivo.
Não existe nada que vá te dizer qual o formato do arquivo independente da extensão, até porque qualquer um pode criar um formato novo de arquivo.
o que quero é verificar o tipo de arquivo e não a extensão dele, como eu disse no primeiro post do tópico. como eu vou usar imagens de tipos mais comuns como bmp, gif, jpg e tif acredito ser mais simples ler o header do arquivo e validar esses quatro tipos. o problema de verificar a extensão é que se alguem mudar a extensão no nome de um arquivo exe para jpg por exemplo o sistema vai achar que é uma imagem sendo que não é. o método que estou usando e que está no primeiro post desse tópico funciona porque quando não for imagem será gerado um erro e então uso o número desse erro que é o 7 e valido se é ou não imagem. queria entender como ler o header para poder validar outros tipo de arquivos comuns como arquivos do word, do excel, do ppoint...
Se o problema foi resolvido, por favor encerre o tópico
Obrigado
Obrigado
na verdade ainda não consegui algo que resolvesse isso por isso ainda não fechei. esperava que alguem tivesse outra ideia melhor do que o que to usando mas tudo bem. vou deixar mais um pouco aberto e se não surgir nada mais eu fecho.
Como você esta fazendo?
estou fazendo da forma que mencionei no primeiro post.
verifica se um desses post te ajuda!
[txt-color=#0000f0]http://stackoverflow.com/questions/210650/validate-image-from-file-in-c-sharp[/txt-color]
[txt-color=#0000f0]http://www.mikekunz.com/image_file_header.html[/txt-color]
[txt-color=#0000f0]http://stackoverflow.com/questions/772388/c-sharp-how-can-i-test-a-file-is-a-jpeg[/txt-color]
[txt-color=#0000f0]http://stackoverflow.com/questions/210650/validate-image-from-file-in-c-sharp[/txt-color]
[txt-color=#0000f0]http://www.mikekunz.com/image_file_header.html[/txt-color]
[txt-color=#0000f0]http://stackoverflow.com/questions/772388/c-sharp-how-can-i-test-a-file-is-a-jpeg[/txt-color]
Tópico encerrado , respostas não são mais permitidas