路径斜杠处理

路径斜杠处理

为了跨平台分割路径斜杠。
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.lastIndexOf filePath(File.separator)来处理路径是存在bug的,如果filePath=“/home/a/b”,而代码是在windows上运行,返回-1.
apache的commons-io 包中的FilenameUtils类有很多方法处理路径问题。



   

你可能感兴趣的:(路径斜杠处理)