W Objective-C używam -[NSURL URLByDeletingLastPathComponent]
do uzyskania adresu URL nadrzędnego. Jaki jest odpowiednik tego w Javie?Jak uzyskać adres URL nadrzędny w Javie?
Odpowiedz
Najkrótszy fragment kodu można myślę, jest to :
URI uri = new URI("http://www.stackoverflow.com/path/to/something");
URI parent = uri.getPath().endsWith("/") ? uri.resolve("..") : uri.resolve(".")
Nie wiem o funkcji biblioteki, aby zrobić to w jednym kroku. Jednak następujące (wprawdzie uciążliwe) fragment kodu wierzę realizuje co jesteś po (i to może owinąć się w swoim własnym funkcji użyteczności):
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);
}
}
W systemie Windows wprowadza to ukośniki tylne. – Sogartar
Tutaj jest bardzo proste rozwiązanie, które było najlepszym rozwiązaniem w moim przypadku użycia:
private String getParent(String resourcePath) {
int index = resourcePath.lastIndexOf('/');
if (index > 0) {
return resourcePath.substring(0, index);
}
return "/";
}
stworzyłem prostą funkcję, to był inspirowany przez kodeks File::getParent
. W moim kodzie nie ma problemu z tylnymi ukośnikami w systemie Windows. Zakładam, że resourcePath
jest częścią zasobów adresu URL, bez protokołu, domeny i numeru portu. (np. /articles/sport/atricle_nr_1234
)
- 1. Jak uzyskać pełny adres url
- 2. Jak uzyskać aktualny adres URL
- 3. Jak uzyskać adres URL żądania?
- 4. Jak uzyskać adres URL w http.Request
- 5. Jak uzyskać adres URL odpowiedzi w XMLHttpRequest?
- 6. Jak uzyskać adres URL bazy w OctoberCMS?
- 7. Jak uzyskać pełny adres URL strony Drupal?
- 8. Jak uzyskać docelowy adres URL zdarzenia onbeforeunload?
- 9. Jak uzyskać adres URL pliku .nupkg?
- 10. Jak uzyskać adres URL zdalnego repozytorium svn?
- 11. Jak uzyskać bieżący adres URL aplikacji Appengine?
- 12. Jak uzyskać adres URL strony głównej?
- 13. Jak uzyskać adres URL z UIImage
- 14. Jak normalizować URL w Javie?
- 15. Jak uzyskać długi adres URL z krótkiego adresu URL?
- 16. Jak uzyskać tylko adres URL słoika ze słoika: adres URL zawierający "!" i konkretny plik w słoiku?
- 17. Jak uzyskać adres URL interfejsu API, jeśli żądany adres URL znajduje się w JSON interfejsu API?
- 18. Jak uzyskać adres IP klienta w Javie HttpServletRequest
- 19. Jak uzyskać adres IP z Nazwy Domeny w Javie?
- 20. Jak uzyskać prawidłowy adres URL pliku wideo z osadzonego wideo?
- 21. Java HttpServletRequest uzyskać adres URL w przeglądarce Pasek adresu URL
- 22. Jak uzyskać adres URL favicon z ogólnej strony w JavaScript?
- 23. Jak uzyskać adres URL strony odsyłającej po przekierowaniu w javascript
- 24. Jak uzyskać adres URL kontrolera z widoku w Codeigniter?
- 25. jak uzyskać aktualny adres URL strony w selen-webdriver
- 26. Jak uzyskać aktualny adres URL po przekierowaniu w Symfony2 WebTestCase?
- 27. Jak uzyskać adres URL w bazie CodeIgniter 2. *
- 28. Jak uzyskać adres URL obrazu w interfejsie wiki?
- 29. Jak uzyskać aktualny adres URL strony w widoku?
- 30. Jak uzyskać adres URL pliku z bezwzględnej ścieżki w Delphi?
URI.resolve sprawdza się również w bardziej złożonych operacjach ... takich jak uri.resolve ("dir/file.txt"). – David
Nie wydaje się, że działa to dla identyfikatorów URI z protokołem "jar: file: ...", który występuje z zasobami znajdującymi się w plikach JAR. –