123 lines
2.2 KiB
Go
123 lines
2.2 KiB
Go
// Copyright 2012 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
// +build gccgo_examples
|
|
|
|
package path
|
|
|
|
import (
|
|
"fmt"
|
|
"path"
|
|
)
|
|
|
|
func ExampleBase() {
|
|
fmt.Println(path.Base("/a/b"))
|
|
fmt.Println(path.Base("/"))
|
|
fmt.Println(path.Base(""))
|
|
// Output:
|
|
// b
|
|
// /
|
|
// .
|
|
}
|
|
|
|
func ExampleClean() {
|
|
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))
|
|
}
|
|
|
|
// Output:
|
|
// 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 ExampleDir() {
|
|
fmt.Println(path.Dir("/a/b/c"))
|
|
fmt.Println(path.Dir("a/b/c"))
|
|
fmt.Println(path.Dir("/a/"))
|
|
fmt.Println(path.Dir("a/"))
|
|
fmt.Println(path.Dir("/"))
|
|
fmt.Println(path.Dir(""))
|
|
// Output:
|
|
// /a/b
|
|
// a/b
|
|
// /a
|
|
// a
|
|
// /
|
|
// .
|
|
}
|
|
|
|
func ExampleExt() {
|
|
fmt.Println(path.Ext("/a/b/c/bar.css"))
|
|
fmt.Println(path.Ext("/"))
|
|
fmt.Println(path.Ext(""))
|
|
// Output:
|
|
// .css
|
|
//
|
|
//
|
|
}
|
|
|
|
func ExampleIsAbs() {
|
|
fmt.Println(path.IsAbs("/dev/null"))
|
|
// Output: true
|
|
}
|
|
|
|
func ExampleJoin() {
|
|
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("a/b", "../../../xyz"))
|
|
|
|
fmt.Println(path.Join("", ""))
|
|
fmt.Println(path.Join("a", ""))
|
|
fmt.Println(path.Join("", "a"))
|
|
|
|
// Output:
|
|
// a/b/c
|
|
// a/b/c
|
|
// a/b/c
|
|
// ../xyz
|
|
//
|
|
// a
|
|
// a
|
|
}
|
|
|
|
func ExampleMatch() {
|
|
fmt.Println(path.Match("abc", "abc"))
|
|
fmt.Println(path.Match("a*", "abc"))
|
|
fmt.Println(path.Match("a*/b", "a/c/b"))
|
|
// Output:
|
|
// true <nil>
|
|
// true <nil>
|
|
// false <nil>
|
|
}
|
|
|
|
func ExampleSplit() {
|
|
split := func(s string) {
|
|
dir, file := path.Split(s)
|
|
fmt.Printf("path.Split(%q) = dir: %q, file: %q\n", s, dir, file)
|
|
}
|
|
split("static/myfile.css")
|
|
split("myfile.css")
|
|
split("")
|
|
// Output:
|
|
// path.Split("static/myfile.css") = dir: "static/", file: "myfile.css"
|
|
// path.Split("myfile.css") = dir: "", file: "myfile.css"
|
|
// path.Split("") = dir: "", file: ""
|
|
}
|