必威体育Betway必威体育官网
当前位置:首页 > IT技术

java文件操作getAbsolutePath和getCanonicalPath的区别

时间:2019-08-10 04:11:03来源:IT技术作者:seo实验室小编阅读:56次「手机版」
 

getabsolutepath

java文件操作getabsolutePath和getcanonicalPath的区别

2014年11月03日 14:11:52

阅读数:2318

一般情况下,二者得到的结果是没有差异的。

getCanonicalPath函数主要是将路径进行了无歧义的处理,即将文件路径中的相对路径符号去掉了,这样的好处是可以防止一些注入攻击。

比如,我们有个文件路径如下:

/User/chan/DownLoads/chan/settings.xml

测试程序代码如下:


 
  1. String filepath = "/User/chan/DownLoads/chan/../chan/settings.xml";

  2. File f = new File(filepath);

  3. System.out.println(f.getAbsolutePath());

  4. System.out.println(f.getCanonicalPath());

输出结果为:

/User/chan/DownLoads/chan/../chan/settings.xml
<pre name="code" class="java">/User/chan/DownLoads/chan/settings.xml

 

也就是说,getCanonicalPath函数会将路径归一化之后进行无歧义的比较,可以防止一些安全注入威胁。

相关阅读

getPath(),getAbsolutePath(),getCanonicalPath()区别

File的这三个方法在api中都有说明,仅以程序为例说明。package test;import java.io.File;import java.io.IOException;public clas

分享到:

栏目导航

推荐阅读

热门阅读