美文网首页
路径path的常用操作

路径path的常用操作

作者: 酷走天涯 | 来源:发表于2018-12-26 22:18 被阅读19次

路径包只能用于以正斜杠分隔的路径,例如 URL 中的路径。此软件包不处理带有驱动器号或反斜杠的 Windows 路径; 要操作操作系统路径,请使用路径/文件路径包

base

func Base(path string) string

Base 返回路径的最后一个元素。在提取最后一个元素之前删除尾部斜杠。如果路径为空,则 Base 返回“.”。如果路径完全由斜线组成,则 Base 返回“/”

示例如下

package main
import (
  "path"
  "fmt"
)
func main() {
  absolutePath := "/Users/xujie/Downloads/icon_dqsk_68_slices/demo.txt"
  name := path.Base(absolutePath)
  fmt.Println(name)
}
image.png

如果路径为空 则输出.

package main

import (
  "path"
  "fmt"
)

func main() {
  absolutePath := ""
  name := path.Base(absolutePath)
  fmt.Println(name)
}
image.png

如果路径中只包含/ 则输出 /

package main

import (
  "path"
  "fmt"
)

func main() {
  absolutePath := "/"
  name := path.Base(absolutePath)
  fmt.Println(name)
}
image.png

Clean

func Clean(path string) string

通过规则处理让源路径成为最短等价路径

处理规则如下

1.使用单斜线取代多斜线
2.取消每个包含.名称的路径
3.取消内部包含..的路径
4.取消/..根路径的元素,使用/替换

这个过程是循环执行的,直到路径符合所有规则

示例

package main

import (
  "fmt"
  "path"
)

func main() {
  paths := []string{
    "a/c",
    "a//c",
    "a/c/.",
    "a/c/b/..",
    "/../a/c",
    "/../a/b/../././/c",
    "",
  }

  for _, p := range paths {
    fmt.Printf("Clean(%q) = %q\n", p, path.Clean(p))
  }
}
image.png

Dir

func Dir(path string) string

获取路径,返回最后一个/之前的字符串,如果路径为空,则返回.,如果只有一个/则返回斜杆本身

package main

import (
  "fmt"
  "path"
)

func main() {
  fmt.Println(path.Dir("/a/b/c.txt"))
  fmt.Println(path.Dir("a/b/c"))
  fmt.Println(path.Dir("/"))
  fmt.Println(path.Dir(""))
}
image.png

Ext

func Ext(path string) string

获取文件的扩展名称,如果.没有点,则返回空字符串

示例如下

package main

import (
  "fmt"
  "path"
)

func main() {
  fmt.Println(path.Ext("/a/b/c/bar.css"))
  fmt.Println(path.Ext("/a/b/c/bar"))
  fmt.Println(path.Ext("/"))
  fmt.Println(path.Ext(""))
}
image.png

IsAbs

func IsAbs(path string) bool
如何检测路径是否是绝度路径?
检测规则就是检测路径字符串第一个字符是否是/

示例

package main

import (
  "fmt"
  "path"
)

func main() {
  fmt.Println(path.IsAbs("/dev/null"))
  fmt.Println(path.IsAbs("text.txt"))
  fmt.Println(path.IsAbs(""))
  fmt.Println(path.IsAbs("/"))
  fmt.Println(path.IsAbs("./user/profile.txt"))
}
image.png

Join

func Join(elem ...string) string
Join 将任意数量的路径元素加入到单个路径中,如有必要添加分隔斜线。结果是 Cleaned; 特别是,所有空串都被忽略

示例

package main

import (
  "fmt"
  "path"
)

func main() {
  fmt.Println(path.Join("/user","name","kuzou.txt"))
  fmt.Println(path.Join("/user","/name","/","kuzou.txt"))

}
image.png

Match

func Match(pattern, name string) (matched bool, err error)

使用正则匹配路径是否符合规则

package main

import (
  "path"
  "fmt"
)
func main() {
 matched,error := path.Match(`S/*`,"S/user")
  if error != nil {
    fmt.Println(error)
  }
 fmt.Println(matched)
}
image.png

Split

func Split(path string) (dir, file string)
文件的路径分割成目录和文件名

示例

package main

import (
  "fmt"
  "path"
)

func main() {
  dir,fileName:= path.Split("/user/name/kuzou.txt")
  fmt.Printf("文件路径:%s\n",dir)
  fmt.Printf("文件名称:%s",fileName)
}
image.png

相关文章

  • 路径path的常用操作

    路径包只能用于以正斜杠分隔的路径,例如 URL 中的路径。此软件包不处理带有驱动器号或反斜杠的 Windows 路...

  • Python模块pathlib操作文件和目录操作总结

    前言 目前大家常用的对于文件和操作的操作使用 os.path 较多,比如 获取当前路径os.getcwd(),判断...

  • PathMeasure,Path的测量

    概念 路径测量,用来测量Path的类。 常用API path长度测量、path跳转、path片段获取等。 1、长度...

  • 路径操作

    os模块路径操作 from os import path (特点:模型方法操作) p = path.join('a...

  • 自定义View-3Path高级操作

    Path高级操作 -Path常用操作 -Path方法详解 rXxx 填充模式填充模式未完全理解 布尔操作 计算边界...

  • PathMeasure

    概念:路径测量,一个用来测量Path,计算Path的工具类 常用api setPath 设置路径 2019-11-...

  • 03、NodeJS-文件操作

    一、核心模块和对象 核心模块的意义 常用内置模块path:处理文件路径fs:操作文件系统child_process...

  • 03、NodeJS-文件操作

    一、核心模块和对象 核心模块的意义 常用内置模块path:处理文件路径fs:操作文件系统child_process...

  • Python os模块实用函数整理

    OS模块常用函数 os.path.exists(path) 判断文件路径是否存在 os.path.isfile(p...

  • Path常用操作速查表

    Path常用操作速查表

网友评论

      本文标题:路径path的常用操作

      本文链接:https://www.haomeiwen.com/subject/idvpqqtx.html