go语言中的路径操作
qingheluo2021-10-25清河洛392
"path"包实现了对斜杠分隔的路径的常用操作IsAbs(path string) bool:返回路径是否是一个绝对路径
Split(path string) (dir, file string)
将路径从最后一个斜杠后面位置分隔为两个部分(dir和file)并返回
如果路径中没有斜杠,dir会设为空字符串
Join(elem ...string) string
将任意数量的路径元素放入一个单一路径里,会根据需要添加斜杠
结果是经过简化的,所有的空字符串元素会被忽略。
Dir(path string) string
返回该路径最后一个元素所在的目录...
"path"包实现了对斜杠分隔的路径的常用操作
IsAbs(path string) bool:返回路径是否是一个绝对路径 Split(path string) (dir, file string) 将路径从最后一个斜杠后面位置分隔为两个部分(dir和file)并返回 如果路径中没有斜杠,dir会设为空字符串 Join(elem ...string) string 将任意数量的路径元素放入一个单一路径里,会根据需要添加斜杠 结果是经过简化的,所有的空字符串元素会被忽略。 Dir(path string) string 返回该路径最后一个元素所在的目录 如果可以,会尽可能去除末尾的斜杠 如果路径是空字符串,会返回"." Base(path string) string 返回路径的最后一个元素(去除末尾的斜杠) 如果路径是"",会返回"." 如果路径是只有一个斜杆构成,会返回"/" Ext(path string) string 返回path文件扩展名(包括‘.‘) 如果path中没有‘.‘会返回空字符串 Clean(path string) string:通过单纯的词法操作返回和path代表同一地址的最短路径 Match(pattern, name string) (matched bool, err error) 返回name是否匹配文件名模式匹配字符串pattern ‘*‘匹配0或多个非/的字符,‘?‘匹配1个非/的字符 ‘[character-range]‘匹配的字符组(必须非空)
"path/filepath"包在"path"包的基础上实现了兼容各操作系统并新增了一些函数
"path"包中的函数在该包中都存在且用法和功能完全相同,新增的函数
Abs(path string) (string, error):返回path代表的绝对路径 Rel(basepath, targpath string) (string, error):返回将将basepath路径作为基准的targpath路径的相对路径表示形式 SplitList(path string) []string:将PATH或GOPATH等环境变量里的多个路径分割开 FromSlash(path string) string:将path中的斜杠(‘/‘)替换为路径分隔符并返回替换结果 ToSlash(path string) string:将path中的路径分隔符替换为斜杠(‘/‘)并返回替换结果 VolumeName(path string) (v string):返回路径的卷名 EvalSymlinks(path string) (string, error):返回path指向的符号链接所指向的路径 Glob(pattern string) (matches []string, err error):返回所有匹配模式匹配字符串pattern的文件或者nil Walk(root string, walkFn WalkFunc) error 遍历指定目录下的文件树,对每一个文件树中的目录和文件都会调用walkFn,包括root自身 所有访问文件/目录时遇到的错误都会传递给walkFn过滤 Walk函数不会遍历文件树中的符号链接(快捷方式)文件指向的路径 type WalkFunc func(path string, info os.FileInfo, err error) error Walk函数对每一个文件/目录都会调用WalkFunc函数类型值 使用示例 filepath.Walk(path, func (path string, info os.FileInfo, err error) error{ if err!=nil{ return err } if info.IsDir() { fmt.Println("dir:", path) }else{ fmt.Println("file:", path) } return err })