path

path包应该只用于用正斜杠分隔的路径,比如url中的路径。这个包不处理带有驱动器号或反斜杠的Windows路径;要操作操作系统路径,请使用path/filepath包

func IsAbs(path string) bool 返回路径是否是一个绝对路径

func Split(path string) (dir, file string) 将路径从最后一个斜杠后面位置分隔为两个部分(dir和file)并返回。如果路径中没有斜杠,函数返回值dir会设为空字符串,file会设为path

func Join(elem …string) string 以将任意数量的路径元素放入一个单一路径里,会根据需要添加斜杠

func Dir(path string) string 返回路径除去最后一个路径元素的部分,即该路径最后一个元素所在的目录

func Base(path string) string 返回最后一个路径元素的部分

func Ext(path string) string 返回path文件扩展名

func Clean(path string) string 通过单纯的词法操作返回和path代表同一地址的最短路径

  1. 1. 将连续的多个斜杠替换为单个斜杠
  2. 2. 剔除每一个.路径名元素(代表当前目录)
  3. 3. 剔除每一个路径内的..路径名元素(代表父目录)和它前面的非..路径名元素
  4. 4. 剔除开始一个根路径的..路径名元素,即将路径开始处的"/.."替换为"/"
  1. Clean("a/c") = "a/c"
  2. Clean("a//c") = "a/c"
  3. Clean("a/c/.") = "a/c"
  4. Clean("a/c/b/..") = "a/c"
  5. Clean("/../a/c") = "/a/c"
  6. Clean("/../a/b/../././/c") = "/a/c"