path实现了对斜杠分隔的路径的实用操作函数。
func IsAbs(path string) bool
IsAbs返回路径是否是一个绝对路径。
func Split(path string) (dir, file string)
Split函数将路径从最后一个斜杠后面位置分隔为两个部分(dir和file)并返回。
func Join(elem ...string) string
Join函数可以将任意数量的路径元素放入一个单一路径里,会根据需要添加斜杠。结果是经过简化的,所有的空字符串元素会被忽略。
func Dir(path string) string
Dir返回路径除去最后一个路径元素的部分,即该路径最后一个元素所在的目录。
func Ext(path string) string
Ext函数返回path文件扩展名。
func Clean(path string) string
Clean函数通过单纯的词法操作返回和path代表同一地址的最短路径。
func Match(pattern, name string) (matched bool, err error)
如果name匹配shell文件名模式匹配字符串,Match函数返回真。
func main() {
pathStr := "/data/script/go"
//返回路径是否是一个绝对路径
//打印 true
fmt.Println(path.IsAbs(pathStr))
//Split函数将路径从最后一个斜杠后面位置分隔为两个部分(dir和file)并返回
//打印 /data/script/go/ 1.go
pathStr = "/data/script/go/1.go"
fmt.Println(path.Split(pathStr))
//打印 /data/script/go/ (file为空字符串)
pathStr = "/data/script/go/"
fmt.Println(path.Split(pathStr))
pathStr = "1.go"
//打印 (dir为空字符串) 1.go
fmt.Println(path.Split(pathStr))
//Join函数可以将任意数量的路径元素放入一个单一路径里,会根据需要添加斜杠。
//打印 a/b/c
fmt.Println(path.Join("a","b","c"))
fmt.Println("--------------------")
//Dir返回路径除去最后一个路径元素的部分,即该路径最后一个元素所在的目录。
//打印 /data/script/go
pathStr = "/data/script/go/1.go"
fmt.Println(path.Dir(pathStr))
//打印 /data/script/go
pathStr = "/data/script/go/"
fmt.Println(path.Dir(pathStr))
//打印 .
pathStr = "1.go"
fmt.Println(path.Dir(pathStr))
fmt.Println("--------------------")
//Base函数返回路径的最后一个元素。在提取元素前会求掉末尾的斜杠。如果路径是"",会返回".";如果路径是只有一个斜杆构成,会返回"/"。
pathStr = "/data/script/go/1.go"
//打印 1.go
fmt.Println(path.Base(pathStr))
pathStr = "/data/script/go/"
//打印 go
fmt.Println(path.Base(pathStr))
pathStr = "/"
//打印 /
fmt.Println(path.Base(pathStr))
pathStr = ""
//打印 .
fmt.Println(path.Base(pathStr))
fmt.Println("--------------------")
//Ext函数返回path文件扩展名。
pathStr = "/data/script/go/1.go"
//打印 go
fmt.Println(path.Ext(pathStr))
pathStr = "/data/script/go/"
//打印 空字符串
fmt.Println(path.Ext(pathStr))
pathStr = ""
//打印 空字符串
fmt.Println(path.Ext(pathStr))
fmt.Println("--------------------")
//Clean函数通过单纯的词法操作返回和path代表同一地址的最短路径
pathStr = "/data//script//1.go"
//将连续的多个斜杠替换为单个斜杠
//打印/data/script/1.go
fmt.Println(path.Clean(pathStr))
pathStr = "./data/./script//1.go"
//剔除每一个.路径名元素(代表当前目录)
//data/script/1.go
fmt.Println(path.Clean(pathStr))
pathStr = "../data/../script/1.go"
//剔除每一个路径内的..路径名元素(代表父目录)和它前面的非..路径名元素
//打印 ../script/1.go
fmt.Println(path.Clean(pathStr))
pathStr = "/../data/script/1.go"
//剔除开始一个根路径的..路径名元素,即将路径开始处的"/.."替换为"/"
//打印 /data/script/1.go
fmt.Println(path.Clean(pathStr))
//Math 如果name匹配shell文件名模式匹配字符串,Match函数返回真。
fmt.Println("--------------------")
pathStr = "/data/script/1.go"
//打印 true
fmt.Println(path.Match("/data/script/*",pathStr))
pathStr = "/data/script/1.go"
//打印 true
fmt.Println(path.Match("/data/script/1.??",pathStr))
pathStr = "/data/script/1.go"
//打印true
fmt.Println(path.Match("/data/script/1.g[o]",pathStr))
}