2011-09-08 7 views
16

Java Newbie pytanie: jaka jest różnica między getAbsolutePath() i getcanonicalPath() w klasie plików. Nie mogę odczytać znaczenia z dokumentów. w poniższym kodzie ich wydajność jest taka sama.Jaka jest różnica między getAbsolutePath i getCanonicalPath

public class copyFile { 
    public static void main(String[] args) throws IOException { 
     File inputFile = new File("/home/kit.ho/"); 
     System.out.println("get AbsolutePath"); 
     System.out.println(inputFile.getAbsolutePath()); 
     System.out.println("get CanonicalPath"); 
     System.out.println(inputFile.getCanonicalPath()); 
    } 
} 
+3

możliwy duplikat [Jaka jest różnica między getPath(), getAbsolutePath() i getCanonicalPath() w Javie?] (Http://stackoverflow.com/questions/1099300/whats-the-difference-between-getpath- getabsolutepath-i-getcanonicalpath) –

+0

absoulet ścieżka daje całą drogę na przykład/user/login/nameoffolder/txt podczas stożkowy ścieżka jest jak nameoffolder/txt (zawiadomienie nie ma/przed nameoffolder) nadzieję, że pomoże –

+0

[Avajava] (http: //www.avajava.com/tutorials/lessons/whats-the-difference-between-a-files-path-absolute-path-and-canonical-path.html) ma dość dobre wyjaśnienie różnic ... –

Odpowiedz

20

Załóżmy /home faktycznie łączem symbolicznym do /usr/home. Wtedy getAbsolutePath nadal będzie zwracał /home/kit.ho/, podczas gdy getCanonicalPath rozwiąże dowiązanie symboliczne i zwróci /usr/home/kit.ho/.

+0

Podobny problem: http://stackoverflow.com/questions/1099300/whats-the-difference-between-getpath-getabsolutepath-and-getcanonicalpath – Santosh

+0

@Jon: Dzięki za odpowiedź! –

Powiązane problemy