>        String myAbsolutePathString = System.getProperty("user.home") +
> "/tmp/test.txt"; // premenna ktoru chceme relativizovat
>
>        File myFile = new File(myAbsolutePathString);
>        URI myPath = new URI(myFile.getCanonicalPath());
>
>        URI rootPath = new URI(File.listRoots()[0].getCanonicalPath()); //
> pri ziskavani rootu treba vo vseobecnosti pocitat s tym, ze FS rootov moze
> byt viac...
>        URI relativePath = rootPath.relativize(myPath);
>
>        System.out.println(relativePath.toString()); // kontrolny vypis

Tento kod nemuze na Windows fungovat, protoze konstruktur URI(String)
ocekava obycejna lomitka, tak, jak to definuje specifikace URI-path.
Volani myFile.getCanonicalPath() ovsem vraci na Windows ta opacna
lomitka, cimz dostaneme URISyntaxException.

Ciste hypoteticky, kdyby kod fungoval (napriklad na UNIXu), to neni
to, co jsem potreboval, protoze volani URI.toString() vraci
"file:/...." a to ja nechci.

Diky za komentar, ja bych toto tema uz uzavrel. Vysledku jsme se v
tomto dlouhem threadu dopidili.

-- 
Lukas Zapletal
http://lukas.zapletalovi.com

Odpovedet emailem