2010-09-08 10 views
21

kullanarak nasıl:URL'yi bir URL'ye sahip göreli yolu

URL url=new URL("http://www.abc.com/aa/bb/cc/file.html"); 

ve göreli bir yol: Ben kullanarak http://www.abc.com/aa/bb/file2.html almak istiyorum

String relativePath="../file2.html"; //maybe is "/file3.html" 

değişken url ve relativePath

Nasıl yap?

cevap

47
new URL(url, relativePath); 
+1

+1. Java API'sı hakkında daha fazla bilgi: http://download.oracle.com/javase/6/docs/api/java/net/URL.html –

+0

Teşekkürler ama sadece JDK6 :( – Koerr

+0

Hayır, yöntem 1.0'dan beri mevcut İşte en az 1.3 için belge (1.0 bulunamadı): http://download.oracle.com/javase/1.3/docs/api/java/net/URL.html#URL%28java.net.URL, % 20java.lang.String% 29 – Arne

9

sınıfın URI yerine URL winth faaliyet deneyin.

URL'nizden URI almak için:

java.net.URI anURI=url.toUri(); 

Sonra göreli URI çözmek için:

URI resultURI=anURI.resolve(relativePath); 

Ve sonunda

, bir URL türü kullanım de yöntemini toUrl almak için() URI sonuç değişkeninin'u var ve var. Akrabası dosyayı işaret bir URL oluşturmak istiyorsanız

+5

URI'yi URL'den kullanmak neden daha iyidir? – sixtyfootersdude

7

, şunları kullanabilirsiniz:

URL url = new URL(new URL("file:"), "./myLocalFile.txt"); 
2

dosyası, temel yolu geçerli pakete olduğunu akılda değil tutmak, bağıl bir URL oluştururken. Yani:

URL url = new URL(new URL("file:"), "./../some-other/nice.file"); 

ve bu benim için de işler: referer dosyası .../myProject/src/pckg/javafile.java olduğunu ve referated dosya .../myProject/some-other/nice.file yılında, daha sonra nispi referans gibi görünmelidir

URL url = new URL("file:./../some-other/nice.file"); 
-1

Bu çalıştı kodum için
URL url=Myclass.class.getResource("/com/fnf/si/DepAcctInq_V02.wsdl");

İlgili konular