file.getPath() getAbsolutePath() getCanonicalPath()区别
getPath
public String getPath()将此抽象路径名转换为一个路径名字符串。所得到的字符串使用默认名称分隔符来分隔名称序列中的名称。
返回:
此抽象路径名的字符串形式
getAbsolutePath
public String getAbsolutePath()返回抽象路径名的绝对路径名字符串。
如果此抽象路径名已经是绝对路径名,则返回该路径名字符串,这与 getPath() 方法一样。如果此抽象路径名是空的抽象路径名,则返回当前用户目录的路径名字符串,该目录由系统属性 user.dir 指定。否则,使用与系统有关的方式分析此路径名。在 UNIX 系统上,通过根据当前用户目录分析某一相对路径名,可使该路径名成为绝对路径名。在 Microsoft Windows 系统上,通过由路径名指定的当前驱动器目录(如果有)来分析某一相对路径名,可使该路径名成为绝对路径名;否则,可以根据当前用户目录来分析它。
返回:
绝对路径名字符串,它与此抽象路径名表示相同的文件或目录的
抛出:
SecurityException - 如果无法访问所需的系统属性值。
另请参见:
isAbsolute()
getCanonicalPath
public String getCanonicalPath()
throws IOException返回抽象路径名的规范路径名字符串。
规范路径名是绝对路径名,并且是惟一的。规范路径名的准确定义与系统有关。如有必要,此方法首先将路径名转换成绝对路径名,这与调用 getAbsolutePath() 方法的效果一样,然后用与系统相关的方式将它映射到其惟一路径名。这通常涉及到从路径名中移除多余的名称(比如 "." 和 "..")、分析符号连接(对于 UNIX 平台),以及将驱动器名转换成标准大小写形式(对于 Microsoft Windows 平台)。
表示现有文件或目录的每个路径名都有一个惟一的规范形式。表示非存在文件或目录的每个路径名也有一个惟一的规范形式。非存在文件或目录路径名的规范形式可能不同于创建文件或目录之后同一路径名的规范形式。同样,现有文件或目录路径名的规范形式可能不同于删除文件或目录之后同一路径名的规范形式。
返回:
表示与此抽象路径名相同的文件或目录的规范路径名字符串
抛出:
IOException - 如果发生 I/O 错误(可能是因为构造规范路径名需要进行文件系统查询)
SecurityException - 如果无法访问所需的系统属性值,或者存在安全管理器,且其 SecurityManager.checkRead(java.io.FileDescriptor) 方法拒绝对该文件进行读取访问
从以下版本开始:
JDK1.1
实例
<blockquote>package file;
import java.io.File;
import java.io.IOException;
public class getFilePath {
public static void main(String[] args) throws IOException
{
System.out.println("------默认相对路径,取得路径不同-----");
File f = new File("..srcfile");
System.out.println(f.getPath());
System.out.println(f.getAbsolutePath());
System.out.println(f.getCanonicalPath());
System.out.println("------默认相对路径,取得路径不同-----");
File f2 = new File(".srcfile");
System.out.println(f2.getPath());
System.out.println(f2.getAbsolutePath());
System.out.println(f2.getCanonicalPath());
System.out.println("------默认绝对路径,取得路径相同-----");
File f3 = new File("C:srcfile");
System.out.println(f3.getPath());
System.out.println(f3.getAbsolutePath());
System.out.println(f3.getCanonicalPath());
// 执行结果为:
// ------默认相对路径,取得路径不同-----
// ..srcfile
// C:workspaceTip..srcfile
// C:workspacesrcfile
// ------默认相对路径,取得路径不同-----
// .srcfile
// C:workspaceTip.srcfile
// C:workspaceTipsrcfile
// ------默认绝对路径,取得路径相同-----
// C:srcfile
// C:srcfile
// C:srcfile
//
// 比较可以得到
// getPath()返回的是构造方法里的路径,不做任何处理
// getAbsolutePath()返回的是 user.dir getPath(),也就是执行路径加上构造方法中的路径
// getCanonicalPath()返回的是将符号完全解析的路径,也就是全路径
}
}
您可能感兴趣的文章:
file.getPath() getAbsolutePath() getCanonicalPath()区别
golang 热插拨 插件_从零开始实现一个插件化框架
css中display:none和visibility:hidden的区别
style 和 currentStyle 区别分析
CString、BSTR和LPCTSTR应用与区别
jquery 中size() length的区别
php中单引号与双引号的区别
echo和print和print_r函数区别
php define常量定义与变量区别
PHP中全局变量global和$GLOBALS[]的区别