lunes, 27 de mayo de 2013

Java, obtener la extensión de un fichero



Obtener extensión de fichero, en muchos casos en interesante obtener la extensión de un fichero con el que estamos trabajando en Java, para lo que vamos a proponer dos aproximaciones, la primera es la más habitual, consiste en obtener la extensión en base al nombre del  fichero,  o de la ruta completa, devolviendo un texto vacio si no se encuentra el punto que separa la extensión.

      public static String getExtension(String filename) {
            int index = filename.lastIndexOf('.');
            if (index == -1) {
                  return "";
            } else {
                  return filename.substring(index + 1);
            }
}

Ahora una segunda opción, en la que presentamos como hacer esta búsqueda, pero evitando que ocurran errores de retorno, porque se envíen directorios en vez  de ficheros completos, por ejemplo si enviásemos c:\\hola.hola\\ y eso es el nombre de una carpeta, el primer método nos devolvería el hola, como si fuera la extensión del fichero, el segundo detectaría que no es un fichero, sino un directorio, y nos devolvería dentro del primer if. Podríamos ampliar el control, a un segundo if, que pregunte, si lo que nos han enviado es un fichero y si no es ni un directorio, ni un fichero, que se supone que han enviado a la consulta.

      public static String getExtensionFile(String filename) {
            File f = new File(filename);
            if (f == null || f.isDirectory()){
                  return "nulo o directorio";
            }else if (f.isFile()){
                  int index = filename.lastIndexOf('.');
                  if (index == -1) {
                        return "";
                  } else {
                        return filename.substring(index + 1);
                  }
            }else{
                  return "que has enviado?";
            }
      }    

Antes de que a alguien le reviente la vena al ver el método, se que este método es optimizable, soy consciente, pero se trata de no darlo todo hecho, sino las ideas. Está desordenado, mejóralo y úsalo.

No hay comentarios:

Publicar un comentario