Como obter a extensão de arquivo em java
Veja neste post como obter a extensão de um arquivo em java
Última atualização em: | 5388 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.