En Objective-C utilizo -[NSURL URLByDeletingLastPathComponent]
para obtener el URL principal. ¿Cuál es el equivalente de esto en Java?¿Cómo obtener el URL principal en Java?
Respuesta
fragmento más corto del código que puedo pensar es en este :
URI uri = new URI("http://www.stackoverflow.com/path/to/something");
URI parent = uri.getPath().endsWith("/") ? uri.resolve("..") : uri.resolve(".")
No sé de la función de biblioteca para hacer esto en un solo paso. Sin embargo, la siguiente (la verdad es engorroso) poco de código Creo que logra lo que busca (y que podría terminar con esto en su propia función de utilidad):
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
public class URLTest
{
public static void main(String[] args) throws MalformedURLException
{
// make a test url
URL url = new URL("http://stackoverflow.com/questions/10159186/how-to-get-parent-url-in-java");
// represent the path portion of the URL as a file
File file = new File(url.getPath());
// get the parent of the file
String parentPath = file.getParent();
// construct a new url with the parent path
URL parentUrl = new URL(url.getProtocol(), url.getHost(), url.getPort(), parentPath);
System.out.println("Child: " + url);
System.out.println("Parent: " + parentUrl);
}
}
En Windows, esto presenta barras diagonales inversas. – Sogartar
Aquí es una solución muy sencilla que era el mejor enfoque en mi caso de uso:
private String getParent(String resourcePath) {
int index = resourcePath.lastIndexOf('/');
if (index > 0) {
return resourcePath.substring(0, index);
}
return "/";
}
creé función simple, que se inspiró en el código de File::getParent
. En mi código no hay problema con las barras diagonales inversas en Windows. Supongo que resourcePath
es parte del recurso de URL, sin protocolo, dominio y número de puerto. (por ejemplo, /articles/sport/atricle_nr_1234
)
- 1. ¿Cómo obtener el nodo principal en Capibara?
- 2. Obtener la URL principal del sitio completo en Kohana 3
- 3. Java HttpServletRequest obtener URL en los navegadores Barra de URL
- 4. Abrir URL en Java para obtener el contenido
- 5. ¿Cómo obtener la conexión de URL usando proxy en java?
- 6. XAML: Obtener el fondo principal
- 7. JLabel - obtener el panel principal?
- 8. Java: ¿cómo obtener un archivo de una URL escapada?
- 9. ¿Cómo obtener el ID de producto principal en magento?
- 10. Java - Thread.sleep en el método principal
- 11. ¿Podemos sobrecargar el método principal en Java?
- 12. cómo obtener el objectID de la url?
- 13. obtener la parte principal de la url incluyendo el directorio virtual
- 14. Obtener el formulario principal del componente
- 15. Obtener ruta absoluta de una url en java
- 16. cómo obtener el Id de la URL mientras usa node.js
- 17. ¿Cómo obtener RouteData por URL?
- 18. Cómo obtener la URL anterior en django
- 19. Obtener el usuario de Tomcat en Java
- 20. Cómo obtener la URL del objeto en el controlador
- 21. Cómo obtener el archivo URL del evento ondrop en javascript
- 22. ¿Cómo obtener la URL actual en el portapapeles con Vimperator?
- 23. Obtener iframe url de src actual en el dominio cruzado
- 24. ¿Cómo obtener la URL anterior en JavaScript?
- 25. Obtener el encabezado ELF del ejecutable principal
- 26. emacs lisp, ¿cómo obtener el modo principal de búfer?
- 27. Enrutamiento de URL en Java
- 28. Obtener función principal
- 29. ¿Cómo obtener el tamaño del objeto de juego principal?
- 30. ¿Cómo obtener energía eléctrica del conector para el teléfono principal?
URI.resolve también es ideal para operaciones más complejas ... como uri.resolve ("dir/archivo.txt") – David
Esto no parece funcionar para URI con el protocolo "jar: file: ...", que ocurre con recursos que se encuentran en archivos JAR. –