📜  JavagetPath() 和 getAbsolutePath() 的区别(1)

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

JavagetPath() 和 getAbsolutePath() 的区别

在Java中,当需要获取某个文件或目录的路径时,我们常常会使用两个方法:getPath()getAbsolutePath()。 两个方法都属于java.io.File类的方法,可以返回文件或目录的路径,但它们有几个区别。

getPath()

getPath()方法返回的是相对路径,可以自动把文件名和目录名转化为字符串,但不保证这个文件或目录是否存在,也不保证返回的路径是绝对路径。

例如,假设我们有一个文件名为test.txtC:\Java\目录下,可以这样获取它的路径:

File file = new File("C:\\Java\\test.txt");
String path = file.getPath();
System.out.println(path);
// 输出: C:\Java\test.txt

如果该文件不存在,这个方法返回的路径也是该文件的相对路径。

getAbsolutePath()

getAbsolutePath()方法返回的是文件或目录的绝对路径,对于相对路径的文件,此方法会将其转化为绝对路径。 如果当前工作目录不是该文件所在的目录,它会自动加上当前工作目录的前缀。

例如,如果我们要获取同样在C:\Java\目录下的test.txt文件的绝对路径,可以这样:

File file = new File("C:\\Java\\test.txt");
String path = file.getAbsolutePath();
System.out.println(path);
// 输出: C:\Java\test.txt

此外,如果文件不存在,此方法也会返回该文件的绝对路径,但是路径结尾会带上文件名。

综上所述,getPath()方法返回的是相对路径,不保证存在,而getAbsolutePath()方法返回的是绝对路径,会把相对路径转化为绝对路径。 在使用这两个方法时,需要考虑应用场景,选择适合的方法。