概述
path
包提供了许多辅助函数来处理 UNIX 系统的文件路径。本文将介绍如何使用这些函数来解析、操作和判断文件路径。
辅助函数
一个 UNIX 文件路径通常具有以下格式:<DirName>/<BaseName>
,其中 <DirName>
对应于目录路径,<BaseName>
对应于基础路径。当这个路径表示一个文件时,BaseName
就是文件名。
获取路径的基本部分
Base
Base
函数用于获取路径中的基础路径部分,即BaseName
。函数声明如下:func Base(path string) string
Dir
Dir
函数用于获取路径中的目录部分,即DirName
。函数声明如下:func Dir(path string) string
获取文件扩展名
在 UNIX 文件系统中,一个文件名由文件名和扩展名组成,例如 .go
、.c
。Ext
函数可以用于获取路径中的扩展名。函数声明如下:
func Ext(path string) string
判断路径是否为绝对路径
在 UNIX 系统中,路径可以是绝对路径或相对路径。绝对路径从根目录 /
开始,例如 /a/b/c
;相对路径则是相对于当前目录的路径,例如 a/b/c
或 ../a/b/c
。使用 IsAbs
可以判断一个路径是否是绝对路径。函数声明如下:
func IsAbs(path string) bool
组合和拆分路径
Split
Split
函数将路径拆分为目录名和文件名,返回值分别是DirName
和BaseName
。函数声明如下:func Split(path string) (dir, file string)
Join
Join
函数以/
为分隔符将多个字符串连接成一个完整的路径。函数声明如下:func Join(elem ...string) string
使用示例
以下是一个简单的示例,展示如何使用 path
包中的函数来解析路径:
package main
import (
"path"
"fmt"
)
func main() {
p := "foo/bar.tar"
// 使用 Split 函数拆分路径
sDir, sBase := path.Split(p)
// 打印目录和文件名
fmt.Println("目录名:", sDir)
fmt.Println("基础名:", sBase)
// 获取并打印扩展名
fmt.Println("扩展名:", path.Ext(p))
}
运行结果如下:
目录名: foo/
基础名: bar.tar
扩展名: .tar