今天看一个例子,里面用到File类的getCanonicalPath()方法,突然忘记这个方法返回的是什么样的路径了,跟getPath()和getAbsolutePath()有什么区别?带着这两个问题查了下文档,获得的结论以下:ide
getPath():spa
返回的是定义时的路径,多是相对路径,也多是绝对路径,这个取决于定义时用的是相对路径仍是绝对路径。若是定义时用的是绝对路径,那么使用getPath()返回的结果跟用getAbsolutePath()返回的结果同样文档
getAbsolutePath():get
返回的是定义时的路径对应的相对路径,但不会处理“.”和“..”的状况string
getCanonicalPath():it
返回的是规范化的绝对路径,至关于将getAbsolutePath()中的“.”和“..”解析成对应的正确的路径class
举例以下:test
- File file = new File(".\\test.txt");
- System.out.println(file.getPath());
- System.out.println(file.getAbsolutePath());
- System.out.println(file.getCanonicalPath());
返回的结果为:file
- .\test.txt
- E:\workspace\Test\.\test.txt
- E:\workspace\Test\test.txt
“..”的状况相似方法