📜  Java中 getPath() 和 getCanonicalPath() 的区别(1)

📅  最后修改于: 2023-12-03 15:01:49.578000             🧑  作者: Mango

Java中 getPath() 和 getCanonicalPath() 的区别

在Java中,有两个方法可以获取文件路径:getPath()和getCanonicalPath()。虽然它们都可以获取文件路径,但它们实际上有很大的差异。

getPath()

getPath() 方法返回的是包含了文件名的路径字符串,但不一定是绝对路径字符串。

例如:

File file = new File("resources/sample.txt");
String path = file.getPath();

上述代码中,getPath() 方法返回的是相对路径字符串: resources/sample.txt

getCanonicalPath()

相比之下,getCanonicalPath() 返回的是绝对路径字符串。它将解析出所有的符号链接和相对路径,然后返回完整的、标准化的路径。

例如:

File file = new File("resources/sample.txt");
String canonicalPath = file.getCanonicalPath();

上述代码中,getCanonicalPath() 方法返回的是绝对路径字符串: /Users/username/project/resources/sample.txt

总结

因此,如果需要获取文件的绝对路径,应该使用getCanonicalPath() 方法。如果仅需要构造一个包含了文件名的路径字符串,可以使用getPath() 方法。