2009-01-27 18 views
8

Mi problema es ::¿Cómo extraer el nombre del archivo de un URI de archivo y crear un enlace para el mismo?

De una cadena como "/usr/folder1/folder2/filename.ext"

  • tengo que extraer el nombre de archivo sólo para la visualización (filename.ext solamente).
    • Mi pregunta sería ¿cómo debería hacerlo? Dividirme en "/" y tomar el último elemento es de una sola manera, pero no me huele bien.
  • Tengo que crear un hipervínculo que use el URI del archivo como destino. Eso será algo similar al archivo: //domain.com/usr/folder1/folder2/filename.ext

Miré URI y las interfaces URL en java.net pero no pude encontrar nada útil allí.

Además, en algunos casos, mi ruta de archivo puede tener COMMA, ESPACIO, etc. (carpetas de Windows). Por lo tanto, tenga esto en cuenta al dar cualquier idea.

+0

La solución propuesta no es universal. prueba http://stackoverflow.com/a/10944586/715269 en su lugar. – Gangnus

Respuesta

15

usted podría intentar algo como esto:

File file = new File("/usr/folder1/folder2/filename.ext"); 
System.out.println(file.getName()); 

yo no estaba seguro de si esto funcionaría si no existe el archivo, pero sólo lo han intentado y parece funcionar bien.

+0

thx, yo era perezoso para dar el código de muestra. ;) – Nicolas

+0

El argumento que necesitaba pasar al constructor 'File' era un' Uri', que se rechazaba como un argumento no válido. Es lo suficientemente simple para convertir el Uri en una cadena: 'File file = new File (mImageUri.toString());' –

4

CommonsIO proporciona soluciones para este problema: FilenameUtils.getName(), devuelve el nombre del archivo + extensión.

String filename = FilenameUtils.getName("/usr/folder1/folder2/filename.ext"); 
System.out.println(filename); // Returns "filename.ext" 
Cuestiones relacionadas