转:

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

File类三种得到路径的方法

2010年11月29日 20:37:00 ssyan 阅读数:27123 标签: file microsoft string exception windows unix  

getPath public String getPath()将此抽象路径名转换为一个路径名字符串。所得到的字符串使用默认名称分隔符来分隔名称序列中的名称。 返回: 此抽象路径名的字符串形式

 

getAbsolutePath
File类三种得到路径的方法 随笔 第1张 public String getAbsolutePath()返回抽象路径名的绝对路径名字符串。
File类三种得到路径的方法 随笔 第2张 如果此抽象路径名已经是绝对路径名,则返回该路径名字符串,这与 getPath() 方法一样。如果此抽象路径名是空的抽象路径名,则返回当前用户目录的路径名字符串,该目录由系统属性 user.dir 指定。否则,使用与系统有关的方式分析此路径名。在 UNIX 系统上,通过根据当前用户目录分析某一相对路径名,可使该路径名成为绝对路径名。在 Microsoft Windows 系统上,通过由路径名指定的当前驱动器目录(如果有)来分析某一相对路径名,可使该路径名成为绝对路径名;否则,可以根据当前用户目录来分析它。
File类三种得到路径的方法 随笔 第3张
File类三种得到路径的方法 随笔 第4张
File类三种得到路径的方法 随笔 第5张 返回:
File类三种得到路径的方法 随笔 第6张 绝对路径名字符串,它与此抽象路径名表示相同的文件或目录的
File类三种得到路径的方法 随笔 第7张 抛出:
File类三种得到路径的方法 随笔 第8张 SecurityException - 如果无法访问所需的系统属性值。
File类三种得到路径的方法 随笔 第9张 另请参见:
File类三种得到路径的方法 随笔 第10张 isAbsolute()
File类三种得到路径的方法 随笔 第11张
File类三种得到路径的方法 随笔 第12张 getCanonicalPath
File类三种得到路径的方法 随笔 第13张 public String getCanonicalPath()
File类三种得到路径的方法 随笔 第14张                          throws IOException返回抽象路径名的规范路径名字符串。
File类三种得到路径的方法 随笔 第15张 规范路径名是绝对路径名,并且是惟一的。规范路径名的准确定义与系统有关。如有必要,此方法首先将路径名转换成绝对路径名,这与调用 getAbsolutePath() 方法的效果一样,然后用与系统相关的方式将它映射到其惟一路径名。这通常涉及到从路径名中移除多余的名称(比如 " . " " .. " )、分析符号连接(对于 UNIX 平台),以及将驱动器名转换成标准大小写形式(对于 Microsoft Windows 平台)。
File类三种得到路径的方法 随笔 第16张
File类三种得到路径的方法 随笔 第17张 表示现有文件或目录的每个路径名都有一个惟一的规范形式。表示非存在文件或目录的每个路径名也有一个惟一的规范形式。非存在文件或目录路径名的规范形式可能不同于创建文件或目录之后同一路径名的规范形式。同样,现有文件或目录路径名的规范形式可能不同于删除文件或目录之后同一路径名的规范形式。
File类三种得到路径的方法 随笔 第18张
File类三种得到路径的方法 随笔 第19张
File类三种得到路径的方法 随笔 第20张 返回:
File类三种得到路径的方法 随笔 第21张 表示与此抽象路径名相同的文件或目录的规范路径名字符串
File类三种得到路径的方法 随笔 第22张 抛出:
File类三种得到路径的方法 随笔 第23张 IOException - 如果发生 I / O 错误(可能是因为构造规范路径名需要进行文件系统查询)
File类三种得到路径的方法 随笔 第24张 SecurityException - 如果无法访问所需的系统属性值,或者存在安全管理器,且其 SecurityManager.checkRead(java.io.FileDescriptor) 方法拒绝对该文件进行读取访问
File类三种得到路径的方法 随笔 第25张 从以下版本开始:
File类三种得到路径的方法 随笔 第26张 JDK1. 1
File类三种得到路径的方法 随笔 第27张


二、例子:
1,getPath()与getAbsolutePath()的区别

File类三种得到路径的方法 随笔 第28张 public static void test1() {
File类三种得到路径的方法 随笔 第29张          File file1 = new File( " .//test1.txt " );
File类三种得到路径的方法 随笔 第30张          File file2 = new File( " D://workspace//test//test1.txt " );
File类三种得到路径的方法 随笔 第31张          System.out.println( " -----默认相对路径:取得路径不同------ " );
File类三种得到路径的方法 随笔 第32张          System.out.println(file1.getPath());
File类三种得到路径的方法 随笔 第33张          System.out.println(file1.getAbsolutePath());
File类三种得到路径的方法 随笔 第34张          System.out.println( " -----默认绝对路径:取得路径相同------ " );
File类三种得到路径的方法 随笔 第35张          System.out.println(file2.getPath());
File类三种得到路径的方法 随笔 第36张          System.out.println(file2.getAbsolutePath());
File类三种得到路径的方法 随笔 第37张         
File类三种得到路径的方法 随笔 第38张      }


得到的结果:

File类三种得到路径的方法 随笔 第39张 ----- 默认相对路径:取得路径不同 ------
File类三种得到路径的方法 随笔 第40张 ./test1.txt
File类三种得到路径的方法 随笔 第41张 D:/workspace/test/./test1.txt
File类三种得到路径的方法 随笔 第42张 ----- 默认绝对路径:取得路径相同 ------
File类三种得到路径的方法 随笔 第43张 D:/workspace/test/test1.txt
File类三种得到路径的方法 随笔 第44张 D:/workspace/test/test1.txt

因为getPath()得到的是构造file的时候的路径。
getAbsolutePath()得到的是全路径
如果构造的时候就是全路径那直接返回全路径
如果构造的时候试相对路径,返回当前目录的路径+构造file时候的路径

2,getAbsolutePath()和getCanonicalPath()的不同

File类三种得到路径的方法 随笔 第45张 public static void test2() throws Exception {
File类三种得到路径的方法 随笔 第46张          File file = new File( " ..//src//test1.txt " );
File类三种得到路径的方法 随笔 第47张          System.out.println(file.getAbsolutePath());
File类三种得到路径的方法 随笔 第48张          System.out.println(file.getCanonicalPath());
File类三种得到路径的方法 随笔 第49张      }

得到的结果

File类三种得到路径的方法 随笔 第50张 D:/workspace/test/../src/test1.txt
File类三种得到路径的方法 随笔 第51张 D:/workspace/src/test1.txt

可以看到CanonicalPath不但是全路径,而且把..或者.这样的符号解析出来。

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄