Ir para o conteúdo

Determinar Extensão de Ficheiros

A classe apresentada pretende fornecer um exemplo de 3 métodos comuns no manuseamento de nomes de ficheiros e de extensões dos mesmo.

import java.io.File;

public class FileUtils {

    /**
     * Método que, dando um nome de um ficheiro, devolve a extensao em minusculas
     * De notar que a extensao de um ficheiro apenas tem significado em alguns 
     * sistemas operativos, nomeadamente sistemas operativos Windows. Outros 
     * 
     * @param filename o nome do ficheiro, absoluto ou nao.
     * @return uma String com a extensao do ficheiro convertida para minusculas ou 
     * uma String vazia caso nao seja encontrada uma extensao.
     */
    public static String findExtension(String filename) {
        int x = -1;
        return ((x = filename.lastIndexOf(".")) > 0 ? filename.substring(x + 1) : "").toLowerCase();
    }

    /**
     * Método de conveniência que usa uma instância de java.io.File.
     * 
     * @param file ficheiro para o qual se pretende obter a extensão.
     * @return uma String com a extensão do ficheiro convertida para minúsculas ou 
     * uma String vazia caso não seja encontrada uma extensão.
     */
    public static String findExtension(File file) {
        return FileUtils.findExtension(file.getName());
    }

    /**
     * Remove a extensao de um nome de ficheiro.
     * 
     * @param filename o nome a ler, absoluto ou nao.
     * @return uma String construida atraves da remocao do texto apos o ultimo 
     * ponto, '.', e do proprio ponto ou o nome inalterado caso nao seja encontrada
     * uma extensao
     */
    public static String stripFileExtension(String filename) {
        int x = -1;
        return (x = filename.lastIndexOf(".")) > 0 && x < filename.length() - 1 ? filename.substring(0, x) : filename;
    }
}