You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kotlin/Java中通过绝对与相对路径生成目标绝对路径?

解决方案:用Java NIO Path类处理路径层级

不用手动拼接字符串,Java和Kotlin都可以借助Java NIO的Path类安全处理路径操作,它会自动解析路径层级,避免手动处理的各类错误。

方法一:通过相对路径解析并标准化

适合相对路径不固定的场景(比如可能是../、../../或其他动态相对路径):

import java.nio.file.Paths

fun main() {
    val absolutePath = Paths.get("a/b/c")
    val relativePath = Paths.get("../../")

    // 解析相对路径并自动标准化层级
    val resolvedPath = absolutePath.resolve(relativePath).normalize()
    
    println(resolvedPath.toString()) // 输出 "a"
    // 若需要末尾带斜杠,可按需处理:
    println("${resolvedPath}/") // 输出 "a/"
}

方法二:直接获取上级路径(适合固定回退层级)

如果明确要回退两级,直接调用getParent()方法更直接:

import java.nio.file.Paths

fun main() {
    val absolutePath = Paths.get("a/b/c")
    
    // 连续获取两次上级路径,注意处理层级不足的异常
    val targetPath = absolutePath.parent?.parent ?: error("路径层级不足,无法回退两级")
    
    println(targetPath.toString()) // 输出 "a"
}

为什么用Path类?

  • 跨平台自动适配路径分隔符(Windows用\,Unix用/)
  • 自动处理路径中的冗余部分(比如./、../)
  • 避免手动字符串拼接可能出现的格式错误、层级计算错误

内容的提问来源于stack exchange,提问作者Nikolai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 00:21:01