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)
