| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1400 人关注过本帖
标题:一个神奇的问题,有大神帮忙解释一波吗
只看楼主 加入收藏
fydjs
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2018-4-24
收藏
 问题点数:0 回复次数:3 
一个神奇的问题,有大神帮忙解释一波吗
代码:
String strPath = "/test/";
System.out.println(strPath);
File file = new File(strPath);
System.out.println(file.getCanonicalPath().replaceAll("\\\\", "/"));


控制台输出:
/test/
/test2
搜索更多相关主题的帖子: test System out println File 
2018-04-24 15:55
疯狂的小a
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:39
帖 子:423
专家分:1871
注 册:2018-2-6
收藏
得分:0 
/test/
D:/test
我的输出结果

假如人生没有梦想,和咸鱼有什么区别!
2018-04-24 20:41
疯狂的小a
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:39
帖 子:423
专家分:1871
注 册:2018-2-6
收藏
得分:0 
程序代码:
String strPath = "/test/";
        System.out.println(strPath);
        File file = new File(strPath);
        String absolutePath = file.getAbsolutePath();
        System.out.println(absolutePath);
        String canonicalPath = file.getCanonicalPath();
        System.out.println(canonicalPath);
        System.out.println(canonicalPath.replaceAll("\\\\", "/"));

结果
/test/
D:\test
D:\test
D:/test

所以getCanonicalPath()和getAbsolutePath()结果几乎一样。getCanonicalPath函数会将路径归一化之后进行无歧义的比较,可以防止一些安全注入威胁

假如人生没有梦想,和咸鱼有什么区别!
2018-04-24 20:45
fydjs
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2018-4-24
收藏
得分:0 
问题已解决,谢谢啊,这是因为linux根目录下test2文件夹创建了一个在根目录下名为test的快捷方式,所以file.getCanonicalPath()输出的是实际的/test2
2018-04-25 09:34
快速回复:一个神奇的问题,有大神帮忙解释一波吗
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017086 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved