问题描述
在 Jenkins Pipeline 中,我们需要使用路径,比如拼装、替换、判断等等。但是大家对于路径书写习惯不同,比如当前目录是否会使用 ./ 前缀,目录结尾是否会使用 / 后缀。这些不同书写习惯会影响路径处理,比如比较、判断、截取等等。
该笔记将介绍处理路径的 Path、Paths 类库,以解决路径书写风格迥异的问题。
相关文档
Java SE 7/java.nio.file.Paths
Java SE 7/Interface Path
使用方法
import java.nio.file.Paths // 加载并格式化路径 def p = Paths.get("./note/demo/f.txt").normalize() println p.toString() // => note/demo/f.txt println Paths.get("./note/demo/").normalize().toString() // => note/demo // 判断路径是否以 XXXXX 开始 println p.startsWith(Paths.get("./././././note").normalize()) // 获取父级路径 println p.getParent() // 去除最后部分的路径 note/demo // 获取文件名,即路径最后部分 println p.getFileName().toString() // => f.txt
参考文献
How to split a path platform independent?
Java SE 7/java.nio.file.Paths
Java SE 7/Interface Path