您的位置:首页 > 编程语言 > PHP开发

getPath getAbsolutePath和getCanonicalPath的区别

2010-12-30 14:51 351 查看
File的这三个方法在api中都有说明,仅以程序为例说明。

package test;

import java.io.File;
import java.io.IOException;

public class TestFilePath {


public static void main(String[] args) {
// TODO Auto-generated method stub

System.out.println(System.getProperty("user.dir"));

try {
System.out.println("-----默认相对路径:取得路径不同------");
File file1 = new File("..//src//test1.txt");
System.out.println(file1.getPath());
System.out.println(file1.getAbsolutePath());
System.out.println(file1.getCanonicalPath());
System.out.println("-----默认相对路径:取得路径不同------");
File file = new File(".//test1.txt");
System.out.println(file.getPath());
System.out.println(file.getAbsolutePath());
System.out.println(file.getCanonicalPath());

System.out.println("-----默认绝对路径:取得路径相同------");
File file2 = new File("D://workspace//test//test1.txt");
System.out.println(file2.getPath());
System.out.println(file2.getAbsolutePath());
System.out.println(file2.getCanonicalPath());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}

程序执行结果如下:

F:/eclipseworkspace/testejb
-----默认相对路径:取得路径不同------
../src/test1.txt
F:/eclipseworkspace/testejb/../src/test1.txt
F:/eclipseworkspace/src/test1.txt
-----默认相对路径:取得路径不同------
./test1.txt
F:/eclipseworkspace/testejb/./test1.txt
F:/eclipseworkspace/testejb/test1.txt
-----默认绝对路径:取得路径相同------
D:/workspace/test/test1.txt
D:/workspace/test/test1.txt
D:/workspace/test/test1.txt
结论:

当输入为绝对路径时,返回的都是绝对路径。

当输入为相对路径时:

getPath()返回的是File构造方法里的路径,是什么就是什么,不增不减

getAbsolutePath()返回的其实是user.dir+getPath()的内容,从上面F:/eclipseworkspace/testejb、F:/eclipseworkspace/testejb/../src/test1.txt、F:/eclipseworkspace/testejb/./test1.txt可以得出。

getCanonicalPath()返回的就是标准的将符号完全解析的路径
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: