aa8901e9bb
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/193497 From-SVN: r275473
168 lines
3.3 KiB
Go
168 lines
3.3 KiB
Go
// Copyright 2013 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 !windows,!plan9
|
|
|
|
package filepath_test
|
|
|
|
import (
|
|
"fmt"
|
|
"path/filepath"
|
|
)
|
|
|
|
func ExampleSplitList() {
|
|
fmt.Println("On Unix:", filepath.SplitList("/a/b/c:/usr/bin"))
|
|
// Output:
|
|
// On Unix: [/a/b/c /usr/bin]
|
|
}
|
|
|
|
func ExampleRel() {
|
|
paths := []string{
|
|
"/a/b/c",
|
|
"/b/c",
|
|
"./b/c",
|
|
}
|
|
base := "/a"
|
|
|
|
fmt.Println("On Unix:")
|
|
for _, p := range paths {
|
|
rel, err := filepath.Rel(base, p)
|
|
fmt.Printf("%q: %q %v\n", p, rel, err)
|
|
}
|
|
|
|
// Output:
|
|
// On Unix:
|
|
// "/a/b/c": "b/c" <nil>
|
|
// "/b/c": "../b/c" <nil>
|
|
// "./b/c": "" Rel: can't make ./b/c relative to /a
|
|
}
|
|
|
|
func ExampleSplit() {
|
|
paths := []string{
|
|
"/home/arnie/amelia.jpg",
|
|
"/mnt/photos/",
|
|
"rabbit.jpg",
|
|
"/usr/local//go",
|
|
}
|
|
fmt.Println("On Unix:")
|
|
for _, p := range paths {
|
|
dir, file := filepath.Split(p)
|
|
fmt.Printf("input: %q\n\tdir: %q\n\tfile: %q\n", p, dir, file)
|
|
}
|
|
// Output:
|
|
// On Unix:
|
|
// input: "/home/arnie/amelia.jpg"
|
|
// dir: "/home/arnie/"
|
|
// file: "amelia.jpg"
|
|
// input: "/mnt/photos/"
|
|
// dir: "/mnt/photos/"
|
|
// file: ""
|
|
// input: "rabbit.jpg"
|
|
// dir: ""
|
|
// file: "rabbit.jpg"
|
|
// input: "/usr/local//go"
|
|
// dir: "/usr/local//"
|
|
// file: "go"
|
|
}
|
|
|
|
func ExampleJoin() {
|
|
fmt.Println("On Unix:")
|
|
fmt.Println(filepath.Join("a", "b", "c"))
|
|
fmt.Println(filepath.Join("a", "b/c"))
|
|
fmt.Println(filepath.Join("a/b", "c"))
|
|
fmt.Println(filepath.Join("a/b", "/c"))
|
|
// Output:
|
|
// On Unix:
|
|
// a/b/c
|
|
// a/b/c
|
|
// a/b/c
|
|
// a/b/c
|
|
}
|
|
|
|
func ExampleMatch() {
|
|
fmt.Println("On Unix:")
|
|
fmt.Println(filepath.Match("/home/catch/*", "/home/catch/foo"))
|
|
fmt.Println(filepath.Match("/home/catch/*", "/home/catch/foo/bar"))
|
|
fmt.Println(filepath.Match("/home/?opher", "/home/gopher"))
|
|
fmt.Println(filepath.Match("/home/\\*", "/home/*"))
|
|
|
|
// Output:
|
|
// On Unix:
|
|
// true <nil>
|
|
// false <nil>
|
|
// true <nil>
|
|
// true <nil>
|
|
}
|
|
|
|
func ExampleBase() {
|
|
fmt.Println("On Unix:")
|
|
fmt.Println(filepath.Base("/foo/bar/baz.js"))
|
|
fmt.Println(filepath.Base("/foo/bar/baz"))
|
|
fmt.Println(filepath.Base("/foo/bar/baz/"))
|
|
fmt.Println(filepath.Base("dev.txt"))
|
|
fmt.Println(filepath.Base("../todo.txt"))
|
|
fmt.Println(filepath.Base(".."))
|
|
fmt.Println(filepath.Base("."))
|
|
fmt.Println(filepath.Base("/"))
|
|
fmt.Println(filepath.Base(""))
|
|
|
|
// Output:
|
|
// On Unix:
|
|
// baz.js
|
|
// baz
|
|
// baz
|
|
// dev.txt
|
|
// todo.txt
|
|
// ..
|
|
// .
|
|
// /
|
|
// .
|
|
}
|
|
|
|
func ExampleDir() {
|
|
fmt.Println("On Unix:")
|
|
fmt.Println(filepath.Dir("/foo/bar/baz.js"))
|
|
fmt.Println(filepath.Dir("/foo/bar/baz"))
|
|
fmt.Println(filepath.Dir("/foo/bar/baz/"))
|
|
fmt.Println(filepath.Dir("/dirty//path///"))
|
|
fmt.Println(filepath.Dir("dev.txt"))
|
|
fmt.Println(filepath.Dir("../todo.txt"))
|
|
fmt.Println(filepath.Dir(".."))
|
|
fmt.Println(filepath.Dir("."))
|
|
fmt.Println(filepath.Dir("/"))
|
|
fmt.Println(filepath.Dir(""))
|
|
|
|
// Output:
|
|
// On Unix:
|
|
// /foo/bar
|
|
// /foo/bar
|
|
// /foo/bar/baz
|
|
// /dirty/path
|
|
// .
|
|
// ..
|
|
// .
|
|
// .
|
|
// /
|
|
// .
|
|
}
|
|
|
|
func ExampleIsAbs() {
|
|
fmt.Println("On Unix:")
|
|
fmt.Println(filepath.IsAbs("/home/gopher"))
|
|
fmt.Println(filepath.IsAbs(".bashrc"))
|
|
fmt.Println(filepath.IsAbs(".."))
|
|
fmt.Println(filepath.IsAbs("."))
|
|
fmt.Println(filepath.IsAbs("/"))
|
|
fmt.Println(filepath.IsAbs(""))
|
|
|
|
// Output:
|
|
// On Unix:
|
|
// true
|
|
// false
|
|
// false
|
|
// false
|
|
// true
|
|
// false
|
|
}
|