?
This document uses PHP Chinese website manual Release
import "path"
概況
索引
例子
子目錄
Package 路徑實現(xiàn)用于操作斜線分隔路徑的實用程序例程。
路徑包只能用于以正斜杠分隔的路徑,例如 URL 中的路徑。此軟件包不處理帶有驅動器號或反斜杠的 Windows 路徑; 要操作操作系統(tǒng)路徑,請使用路徑/文件路徑包。
變量
func Base(path string) string
func Clean(path string) string
func Dir(path string) string
func Ext(path string) string
func IsAbs(path string) bool
func Join(elem ...string) string
func Match(pattern, name string) (matched bool, err error)
func Split(path string) (dir, file string)
Base Clean Dir Ext IsAbs Join Split
match.go path.go
ErrBadPattern 表示通配模式格式錯誤。
var ErrBadPattern = errors.New("syntax error in pattern")
func Base(path string) string
Base 返回路徑的最后一個元素。在提取最后一個元素之前刪除尾部斜杠。如果路徑為空,則 Base 返回“?!?。如果路徑完全由斜線組成,則 Base 返回“/”。
package mainimport ("fmt""path")func main() { fmt.Println(path.Base("/a/b")) fmt.Println(path.Base("/")) fmt.Println(path.Base(""))}
func Clean(path string) string
Clean 通過純詞法處理返回等價于路徑的最短路徑名。它反復應用以下規(guī)則,直到不能進行進一步的處理:
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 將返回字符串“?!薄?/p>
package mainimport ("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))}}
func Dir(path string) string
Dir 返回路徑的最后一個元素,通常是路徑的目錄。在使用 Split 刪除最后一個元素之后,路徑被清理并刪除尾部的斜杠。如果路徑為空,則 Dir 返回“?!薄H绻窂酵耆尚本€和非斜線字節(jié)組成,則 Dir 會返回一個斜線。在任何其他情況下,返回的路徑不會以斜杠結尾。
package mainimport ("fmt""path")func main() { fmt.Println(path.Dir("/a/b/c")) fmt.Println(path.Dir("a/b/c")) fmt.Println(path.Dir("/")) fmt.Println(path.Dir(""))}
func Ext(path string) string
Ext 返回 path 使用的文件擴展名。擴展名是從路徑的最后一個斜杠分隔元素中的最后一個點開始的后綴; 如果沒有點,它是空的。
package mainimport ("fmt""path")func main() { fmt.Println(path.Ext("/a/b/c/bar.css")) fmt.Println(path.Ext("/")) fmt.Println(path.Ext(""))}
func IsAbs(path string) bool
IsAbs 報告路徑是否是絕對的。
package mainimport ("fmt""path")func main() { fmt.Println(path.IsAbs("/dev/null"))}
func Join(elem ...string) string
Join 將任意數(shù)量的路徑元素加入到單個路徑中,如有必要添加分隔斜線。結果是 Cleaned; 特別是,所有空串都被忽略。
package mainimport ("fmt""path")func main() { fmt.Println(path.Join("a", "b", "c")) fmt.Println(path.Join("a", "b/c")) fmt.Println(path.Join("a/b", "c")) fmt.Println(path.Join("", "")) fmt.Println(path.Join("a", "")) fmt.Println(path.Join("", "a"))}
func Match(pattern, name string) (matched bool, err error)
匹配報告名稱是否與 shell 文件名稱模式相匹配。模式語法是:
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 。
func Split(path string) (dir, file string)
Split 在最后一個斜杠之后立即拆分路徑,將其分隔成一個目錄和文件名組件。如果路徑中沒有斜線,Split 將返回一個空的目錄并將文件設置為路徑。返回的值具有 path = dir + file 的屬性。
package mainimport ("fmt""path")func main() { fmt.Println(path.Split("static/myfile.css")) fmt.Println(path.Split("myfile.css")) fmt.Println(path.Split(""))}
Name | Synopsis |
---|