java文件操作getAbsolutePath和getCanonicalPath的区别
2014-11-03 14:11
357 查看
一般情况下,二者得到的结果是没有差异的。
getCanonicalPath函数主要是将路径进行了无歧义的处理,即将文件路径中的相对路径符号去掉了,这样的好处是可以防止一些注入攻击。
比如,我们有个文件路径如下:
测试程序代码如下:
也就是说,getCanonicalPath函数会将路径归一化之后进行无歧义的比较,可以防止一些安全注入威胁。
getCanonicalPath函数主要是将路径进行了无歧义的处理,即将文件路径中的相对路径符号去掉了,这样的好处是可以防止一些注入攻击。
比如,我们有个文件路径如下:
/User/chan/DownLoads/chan/settings.xml
测试程序代码如下:
String filepath = "/User/chan/DownLoads/chan/../chan/settings.xml"; File f = new File(filepath); System.out.println(f.getAbsolutePath()); System.out.println(f.getCanonicalPath());输出结果为:
/User/chan/DownLoads/chan/../chan/settings.xml
<pre name="code" class="java">/User/chan/DownLoads/chan/settings.xml
也就是说,getCanonicalPath函数会将路径归一化之后进行无歧义的比较,可以防止一些安全注入威胁。
相关文章推荐
- java中File类的getPath(),getAbsolutePath(),getCanonicalPath()区别
- 【转】Java中file类getPath(),getAbsolutePath(),getCanonicalPath()方法区别
- Java中file类getPath(),getAbsolutePath(),getCanonicalPath()方法区别
- java中File操作——getPath和getAbsolutePath和getCanonicalPath
- java.io.File 中 getPath(), getAbsolutePath() 和 getCanonicalPath() 三个方法的区别
- java中File类的getPath(),getAbsolutePath(),getCanonicalPath()区别
- java中File类的getPath(),getAbsolutePath(),getCanonicalPath()区别
- java里getPath、 getAbsolutePath、getCanonicalPath的区别
- java.io.File 中 getPath(), getAbsolutePath() 和 getCanonicalPath() 三个方法的区别
- java里getPath、 getAbsolutePath、getCanonicalPath的区别
- java中File类的getPath(),getAbsolutePath(),getCanonicalPath()区别
- java.io.File 中 getPath(), getAbsolutePath() 和 getCanonicalPath() 三个方法的区别
- java里getPath、 getAbsolutePath、getCanonicalPath的区别
- Java中file类getPath(),getAbsolutePath(),getCanonicalPath()方法区别
- 详谈java中File类getPath()、getAbsolutePath()、getCanonical的区别
- java中File类的getPath(),getAbsolutePath(),getCanonicalPath()区别
- java中File类的getPath(),getAbsolutePath(),getCanonicalPath()区别
- Java getPath() getAbsolutePath() getCanonicalPath()区别
- mkdir()与 mkdirs()方法的区别 ;目录和文件的区别;绝对路径和相对路径的详解;file的getPath getAbsolutePath和getCanonicalPath的不同
- 【java】File,file.getPath(), getAbsolutePath(), getCanonicalPath()区别