A cross-platform file path manipulation library for MoonBit, supporting both Unix and Windows platforms.
Dependencies
test "Basic Path Operations" {
// Create a new path
let path = @path.Path::new("/home/user")
inspect(path.to_string(), content="/home/user")
// Push new components
path.push("documents")
path.push("file.txt")
inspect(path.to_string(), content="/home/user/documents/file.txt")
// Pop the last component
let _ = path.pop()
inspect(path.to_string(), content="/home/user/documents")
}test "Path Normalization" {
let path = @path.Path::new("/home/user/../documents/./file.txt")
inspect(path.to_string(), content="/home/documents/file.txt")
let relative = @path.Path::new("src/../lib/./utils")
inspect(relative.to_string(), content="lib/utils")
}let path = Path::new("/home/user/file.txt")
let relative = Path::new("src/lib")path.push("documents")
path.push("sub/dir") // Automatically split into "sub" and "dir"let _ = path.pop()let path = Path::new("/home/user")
println("The path is: \{path}") // Output: The path is: /home/usertest "基本路径操作" {
// 创建一个新路径
let path = @path.Path::new("/home/user")
inspect(path.to_string(), content="/home/user")
// 添加新的路径组件
path.push("documents")
path.push("file.txt")
inspect(path.to_string(), content="/home/user/documents/file.txt")
// 移除最后一个组件
let _ = path.pop()
inspect(path.to_string(), content="/home/user/documents")
}test "路径规范化" {
let path = @path.Path::new("/home/user/../documents/./file.txt")
inspect(path.to_string(), content="/home/documents/file.txt")
let relative = @path.Path::new("src/../lib/./utils")
inspect(relative.to_string(), content="lib/utils")
}let path = Path::new("/home/user/file.txt")
let relative = Path::new("src/lib")path.push("documents")
path.push("sub/dir") // 会被自动拆分为 "sub" 和 "dir"path.pop()let path = Path::new("/home/user")
println("路径是: \{path}") // 输出: 路径是: /home/userlet p1 = Path::new("/home/user/file.txt") // 创建绝对路径
let p2 = Path::new("relative/path") // 创建相对路径
inspect(p1, content="/home/user/file.txt")
inspect(p2, content="relative/path")let p = Path::new("/home/user/file.txt")
let _ = p.pop() // 现在路径是 "/home/user"
inspect(p, content="/home/user")let p = Path::new("/home/user")
p.push("documents")
p.push("file.txt")A cross-platform file path manipulation library for MoonBit, supporting both Unix and Windows platforms.
Dependencies