Package path

Overview ▾

包路径实现了用于处理斜杠分隔路径的实用程序例程.

路径包仅应用于以正斜杠分隔的路径,例如URL中的路径. 该程序包不处理带有驱动器号或反斜杠的Windows路径. 要操作操作系统路径,请使用path / filepath包.

Variables

ErrBadPattern表示模式格式错误.

var ErrBadPattern = errors.New("syntax error in pattern")

func Base

func Base(path string) string

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

Example

b
/
.

func Clean

func Clean(path string) string

Clean通过纯词法处理返回与path等效的最短路径名. 它反复应用以下规则,直到无法进行进一步处理为止:

1. Replace multiple slashes with a single slash.
2. Eliminate each . path name element (the current directory).
3. Eliminate each inner .. path name element (the parent directory)
   along with the non-.. element that precedes it.
4. Eliminate .. elements that begin a rooted path:
   that is, replace "/.." by "/" at the beginning of a path.

返回的路径仅当其根为" /"时才以斜杠结尾.

如果此过程的结果为空字符串,则Clean返回字符串".".

另请参见Rob Pike," Plan 9中的词法文件名或正确的点对点", https://9p.io/sys/doc/lexnames.html

Example

Clean("a/c") = "a/c"
Clean("a//c") = "a/c"
Clean("a/c/.") = "a/c"
Clean("a/c/b/..") = "a/c"
Clean("/../a/c") = "/a/c"
Clean("/../a/b/../././/c") = "/a/c"
Clean("") = "."

func Dir

func Dir(path string) string

Dir返回除路径的最后一个元素以外的所有元素,通常是路径的目录. 使用Split删除最终元素后,路径将被清理并删除斜杠. 如果路径为空,则Dir返回".". 如果路径完全由斜杠后跟非斜杠字节组成,则Dir返回单个斜杠. 在任何其他情况下,返回的路径都不以斜杠结尾.

Example

/a/b
a/b
/a
a
/
.

func Ext

func Ext(path string) string

Ext返回路径使用的文件扩展名. 扩展名是从路径的最后斜杠分隔的元素中的最后一个点开始的后缀; 如果没有点,则为空.

Example

.css

func IsAbs

func IsAbs(path string) bool

IsAbs报告该路径是否为绝对路径.

Example

true

func Join

func Join(elem ...string) string

Join将任意数量的路径元素连接到一条路径中,并在必要时添加一个斜杠. 结果是Cleaned; 特别是,所有空字符串都将被忽略.

Example

a/b/c
a/b/c
a/b/c

a
a

func Match

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

匹配报告名称是否与外壳模式匹配. 模式语法为:

pattern:
	{ term }
term:
	'*'         matches any sequence of non-/ characters
	'?'         matches any single non-/ character
	'[' [ '^' ] { character-range } ']'
	            character class (must be non-empty)
	c           matches character c (c != '*', '?', '\\', '[')
	'\\' c      matches character c

character-range:
	c           matches character c (c != '\\', '-', ']')
	'\\' c      matches character c
	lo '-' hi   matches character c for lo <= c <= hi

匹配要求使用模式来匹配所有名称,而不仅仅是子字符串. 模式格式错误时,唯一可能返回的错误是ErrBadPattern.

Example

true <nil>
true <nil>
false <nil>

func Split

func Split(path string) (dir, file string)

分割会在最后一个斜杠之后立即分割路径,将其分为目录和文件名部分. 如果路径中没有斜杠,则Split返回一个空的目录,并将文件设置为path. 返回的值具有path = dir + file的属性.

Example

static/ myfile.css
 myfile.css

Subdirectories

Name Synopsis
..
filepath 软件包filepath实现了实用程序例程,用于以与目标操作系统定义的文件路径兼容的方式来处理文件名路径.

by  ICOPY.SITE