笔记

way

路径斜杠处理

为了跨平台分割路径斜杠。
1.java中\\表示一个\,所以要分割c:\a\document\c.gif这样的路径,需要split("\\\\"),考虑到linux系统,一般可以使用
    filePath.replaceAll("\\\\","/").split("/")来处理。
2.为了更好的跨平台,可以考虑
    String[] subDirs = path.split(File.separator);
    但这种方式是不行的,这里的参数需要的是一个正则表达式,而Windows系统File.separator是“\”,这是转义字符不能使用。可以使用
Pattern.quote:path.split(Pattern.quote(File.separator));还有注意使用
Matcher.quoteReplacement,示例:
 System.out.println(
        "O.M.G.".replaceAll(".", "!")
    ); // prints "!!!!!!"

    System.out.println(
        "O.M.G.".replaceAll(Pattern.quote("."), "!")
    ); // prints "O!M!G!"

    System.out.println(
        "Microsoft software".replaceAll("so", "$0")
    ); // prints "Microsoft software"

    System.out.println(
        "Microsoft software".replaceAll("so", Matcher.quoteReplacement("$0"))
    ); // prints "Micro$0ft $0ftware"
注意:使用File.separator跨平台时注意代码jvm的平台可能和要处理路径的平台不同,所以使用类似
filePath.lastIndexOffilePath(File.separator)来处理路径是存在bug的,如果filePath=“/home/a/b”,而代码是在windows上运行,返回-1.
apache的commons-io 包中的FilenameUtils类有很多方法处理路径问题。



   

posted on 2011-06-15 14:47 yuxh 阅读(872) 评论(0)  编辑  收藏 所属分类: jdkwork


只有注册用户登录后才能发表评论。


网站导航:
 

导航

<2011年6月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

统计

常用链接

留言簿

随笔分类

随笔档案

收藏夹

博客

搜索

最新评论

阅读排行榜

评论排行榜