Kotlin Multiplatform中如何使用Okio合并两个路径对象?
Kotlin Multiplatform中如何使用Okio合并两个路径对象?
嗨,这个问题我太熟悉了!在Kotlin Multiplatform项目里用Okio处理路径合并,其实有两个非常顺手的方法,完全能解决你担心的路径分隔符问题:
直接用
Path的/操作符(重载的除法运算符)
Okio的Path类专门重载了/来做路径拼接,不管你的基础路径末尾有没有带路径分隔符,它都会自动处理,不会出现重复或者缺失的情况。代码示例如下:import okio.Path.Companion.toPath val basePath = "/home/userx/".toPath() val fileName = "image.jpg".toPath() val fullPath = basePath / fileName这样得到的
fullPath就是正确的/home/userx/image.jpg,哪怕你把basePath写成/home/userx(不带末尾斜杠),结果也是一样的。用
FileSystem的resolve方法
如果你需要结合文件系统操作来处理路径,Okio的FileSystem提供了resolve方法,作用和Java的Paths.get类似,专门用来合并基础路径和子路径/文件名:import okio.FileSystem import okio.Path.Companion.toPath val fileSystem = FileSystem.SYSTEM val basePath = "/home/userx/".toPath() val fileName = "image.jpg".toPath() val fullPath = fileSystem.resolve(basePath, fileName)这个方法同样会自动处理不同平台的路径分隔符,在Android、iOS、JVM等平台都能稳定工作。
另外要提一句,Okio的Path本身就是为跨平台设计的,所以这些方法完全适配Kotlin Multiplatform的需求,不用再自己手动处理分隔符的问题啦~
备注:内容来源于stack exchange,提问作者padmalcom
相关产品推荐
相关产品推荐

