2011-08-26 54 views

回答

1

equals() - Compares two abstract pathnames lexicographically

以下印刷清楚地表明,這有不一樣的路徑。

System.out.println(new File("c:\\a").getAbsolutePath()); 
System.out.println(new File("c:\\a\\").getAbsolutePath()); 
System.out.println(new File("c:\\a","").getAbsolutePath()); 
System.out.println(new File("c:\\a\\","").getAbsolutePath()); 
System.out.println(new File("c:\\a","\\").getAbsolutePath()); 
System.out.println(new File("c:\\a","\\b").getAbsolutePath()); 
System.out.println(new File("c:\\a","b").getAbsolutePath()); 

輸出

c:\a 
c:\a 
c:\a 
c:\a 
c:\a\ 
c:\a\b 
c:\a\b 
0

我對Java一無所知,但不是因爲「c:\ a」是一個文件,而「\」是一個目錄?

+0

對於Java,至少在不包含與JDK7的新IO的東西,一個目錄設置爲true isDirectory標誌的File對象。然而,javadoc解釋說,文件是用LEXICOGRRAPHICALLY來比較的,這意味着只要它們的路徑相同,文件就會相同。當然,您可以通過實現自己的比較器來覆蓋該行爲。 –

2

JavaDocs對於java.io.File應該說清楚。

File(File parent, String child) 
      Creates a new File instance from a parent abstract pathname and a child pathname string. 
File(String pathname) 
      Creates a new File instance by converting the given pathname string into an abstract pathname. 
相關問題