Navigation

Eigene Programme

Codeschnipsel

Libraries

english

getRelativePath()

Diese Methode, eigentlich getRelativePath(String targetDir, String sourceDir, boolean url), gibt euch die Adresse von targetDir relativ zu sourceDir zurück. Das ganze funktioniert mit Ordnern und URLs. Der url-boolean ist dafür da, die Art der Ausgabe zu bestimmen. Wenn er true ist, ist der Ausgabestring in Form einer URL mit /-Trennzeichen, sonst in Form einer lokalen Adresse (z.B. bei Windows mit \-Trennzeichen)
Ein Dateiname kann angegeben werden, muss aber nicht. Falls kein Dateiname angegeben wird, das abschliessende / bzw. \ nicht vergessen.

Ihr könnt die untenstehende Testklasse hier herunterladen: RelativeTester.java

Anwendungsbeispiele:

001: import java.io.File;
002:
003: public final class RelativeTester {
004: 	public static void main(String[] args) {
005: 		String relPath = getRelativePath("C:\\muesli\\", "C:\\Programme\\Java\\", false);
006: 		System.out.println(relPath);
007: 		relPath = getRelativePath("C:\\muesli\\", "C:\\Programme\\Java\\", true);
008: 		System.out.println(relPath);
009:
010: 		System.out.println();
011: 		relPath = getRelativePath("http://mywebhome.com/home.html", "http://mywebhome.com/unterseite/test.html", true);
012: 		System.out.println(relPath);
013: 		relPath = getRelativePath("http://mywebhome.com/unterseite/test.html", "http://mywebhome.com/home.html", true);
014: 		System.out.println(relPath);
015:
016:		System.out.println();
017: 		relPath = getRelativePath("http://mywebhome.com/home.html", "http://myOTHERwebhome.com/unterseite/test.html", true);
018: 		System.out.println(relPath);
019: 	}
020:
021: 	public static String getRelativePath(String targetDir, String sourceDir, boolean url) {
         	//[...]
099: 	}
100: }

Ausgaben:

..\..\muesli\
../../muesli/

../home.html
unterseite/test.html

Exception in thread "main" java.lang.IllegalArgumentException: Two subsites of different Websites
	at Tester.getRelativePath(Tester.java:31)
	at Tester.main(Tester.java:17)