Como obter a extensão de arquivo em java

Veja neste post como obter a extensão de um arquivo em java

Wolmir Cezer Garbin por Wolmir Cezer Garbin - - Java

Última atualização em: | 433 Visualizações

A extensão de um arquivo em java pode ser obtida a partir do nome do arquivo. Existem várias formas de se fazer isso. Mostrarei duas que considero serem as mais relevantes.

Obter a extensão de arquivo com substring

A primeira forma é simples e pratica de se usar, e não requer nenhuma biblioteca de terceiros. Esta solução é ótima se você quer algo simples e rápido para seu código. Veja:

String arquivo01 = "/home/wolmir/arquivo de teste.txt";
String extensaoDoArquivo = arquivo01.substring(arquivo01.lastIndexOf(46) + 1);
System.out.println(extensaoDoArquivo);

String arquivo02 = "/home/wolmir/arquivo sem extensao";
if (arquivo02.contains(".")) {
    extensaoDoArquivo = arquivo02.substring(arquivo02.lastIndexOf(46) + 1);
    System.out.println(extensaoDoArquivo);
}
        
String arquivo03 = "/home/wolmir/arquivo de imagem.png";
extensaoDoArquivo = arquivo03.substring(arquivo03.lastIndexOf(46) + 1);
System.out.println(extensaoDoArquivo);

Note que utilizamos substring para obter a extensão e quando não existe a extensão no nome do arquivo precisamos fazer uma condição ou retornaria o nome completo do arquivo.



A saída para este código é:
txt
png

Obter a extensão de arquivo com FilenameUtils

O FilenameUtils faz parte da biblioteca do Apache Commons IO e pode ser adicionada ao projeto utilizando a seguinte dependência:

<dependency>
		<groupId>commons-io</groupId>
		<artifactId>commons-io</artifactId>
		<version>2.6</version>
</dependency>

Note, hoje a dependência mais atual é a 2.6.

A partir disso podemos escrever nosso código de forma mais simples, pois não é necessário utilizar substring ou verificações pois a biblioteca já trata possiveis erros, veja:

String arquivo01 = "/home/wolmir/arquivo de teste.txt";
String extensaoDoArquivo = FilenameUtils.getExtension(arquivo01);
System.out.println(extensaoDoArquivo);

String arquivo02 = "/home/wolmir/arquivo sem extensao";
extensaoDoArquivo = FilenameUtils.getExtension(arquivo02);
System.out.println(extensaoDoArquivo);

String arquivo03 = "/home/wolmir/arquivo de imagem.png";
extensaoDoArquivo = FilenameUtils.getExtension(arquivo03);
System.out.println(extensaoDoArquivo);

Rodando o código obtemos o seguinte retorno:

txt

png

Note que no segundo nome, como não tem extensão, retornou um valor vaziu.

Não esqueca de deixar suas dúvidas nos comentários e compartilhar este post.


Wolmir Cezer Garbin

Wolmir Cezer Garbin

Sou Arquiteto de Software e fundador do Receitas de Código, amo minha profissão e com o Receitas de Código quero compartilhar um pouco deste conhecimento.

Ver mais sobre o autor

FIQUE POR DENTRO

Receba as novidades todo mês em seu e-mail!

Apoiadores


Publique seu post no Receitas de Código

Agora você pode publicar seu post no Receitas de Código e compartilhar seu conhecimento com muitas pessoas!

Quero publicar