Pergunta

Qual é a melhor maneira de determinar um tipo de arquivo no Android?

Eu quero verificar se o arquivo de dados é uma imagem, um arquivo de música, etc.

Foi útil?

Solução

  1. Incluir alguns arquivos mime.types em seus ativos pasta (por exemplo, de /etc/mime.types).
  2. Incluir activation.jar (de JAF) no seu caminho de compilação.
  3. Use algo como isto:

    try {
        MimetypesFileTypeMap mftm = 
            new MimetypesFileTypeMap(getAssets().open("mime.types"));
        FileTypeMap.setDefaultFileTypeMap(mftm);
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    
  4. Em seguida, use FileDataSource.getContentType() obter tipos de arquivo.

Outras dicas

public static String getMimeType(String fileUrl) {
    String extension = MimeTypeMap.getFileExtensionFromUrl(fileUrl);
    final String mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
    return (mimeType !=  null) ? mimeType : "unknown";
}

Uma maneira comum é por sua extensão só, ou você pode analisar o cabeçalho, mas deve ser muito mais lento e mais complexo para as suas aplicações.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top