Como pegar a extensão de um arquivo

4 respostas
V

Estou tentando pegar a extensão do arquivo:

File teste = new File(p.getPath(), “slides” + java.io.File.separator + “slide1.jpg”);

Tentei de duas maneiras:

1:

if(teste.exists()){

String teste1 = png;

} else {

String teste1 = jpg;

}
2:

if (teste.getName().toLowerCase().endsWith(".png")) {

String teste1 = png;

} else {

String teste1 = jpg;

}

Vinicius.

4 Respostas

T

Use “lastIndexOf” sobre o nome do arquivo e procure por “.”. Se achar, então efetue um substring a partir da próxima posição. Se não achar, o arquivo não tem extensão.

C

Use split!

String fileName = "blablabla.jpg";
String ext[] = fileName.split("\\."); /*tem as barras invertidas porque com expressões regulares o ponto é um caracter  especial...  Tem que "escapar"este caractere!*/
System.out.println("Extensao = " + ext[1]);

Falou!

T

ext[1] supõe que exista exatamente 1 ponto no nome. Se houver dois ou mais pontos, vai pegar a parte errada. Mesma coisa se não houver nenhum ponto (arquivo sem extensão).

J
thingol:
ext[1] supõe que exista exatamente 1 ponto no nome. Se houver dois ou mais pontos, vai pegar a parte errada. Mesma coisa se não houver nenhum ponto (arquivo sem extensão).
Solução do Problema:
public class Extensao{

	public static void main(String args[]){
		String fileName = "bla.bba.bl.a.jpg"; 
		String ext[] = fileName.split("\\."); 
		int i = ext.length;

		if(i > 1)
		  System.out.println("Extensao = " + ext[i-1]);  
	}//main
}//split
Criado 11 de julho de 2006
Ultima resposta 24 de nov. de 2007
Respostas 4
Participantes 4