Golang path.filepath 包详解
path/filepath
包提供了一些函数和常量,用于处理文件路径,它对路径的处理是操作系统无关的。这个包可以帮助你写出同时在不同操作系统上都能运行的代码。
解决方案:
- 使用
filepath.Abs
获取绝对路径。
示例代码:
package main
import (
"fmt"
"log"
"path/filepath"
)
func main() {
p, err := filepath.Abs("test.txt")
if err != nil {
log.Fatal(err)
}
fmt.Println(p)
}
- 使用
filepath.Join
来连接路径。
示例代码:
package main
import (
"fmt"
"path/filepath"
)
func main() {
p := filepath.Join("tmp", "test", "test.txt")
fmt.Println(p)
}
- 使用
filepath.Dir
和filepath.Base
来分解路径。
示例代码:
package main
import (
"fmt"
"path/filepath"
)
func main() {
p := "/tmp/test/test.txt"
fmt.Println(filepath.Dir(p))
fmt.Println(filepath.Base(p))
}
- 使用
filepath.Walk
来遍历目录。
示例代码:
package main
import (
"fmt"
"os"
"path/filepath"
)
func main() {
err := filepath.Walk("/tmp/test", func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
fmt.Println(path)
return nil
})
if err != nil {
fmt.Println(err)
}
}
- 使用
filepath.Glob
来查找所有匹配的文件路径。
示例代码:
package main
import (
"fmt"
"path/filepath"
)
func main() {
matches, err := filepath.Glob("/tmp/test/*")
if err != nil {
fmt.Println(err)
}
for _, m := range matches {
fmt.Println(m)
}
}
以上就是 path/filepath
包的一些常见用法。这个包提供的函数和常量都是非常实用的,可以帮助你在编写Go语言程序时更加高效地处理文件路径。
评论已关闭