mirror of
https://github.com/golang/go.git
synced 2025-10-19 19:13:18 +00:00

Change-Id: I8451179bc0fa88b7e60afbc6fd9e06a22a94f3aa Reviewed-on: https://go-review.googlesource.com/c/go/+/673835 Reviewed-by: Sean Liao <sean@liao.dev> Auto-Submit: Sean Liao <sean@liao.dev> Reviewed-by: Michael Knyszek <mknyszek@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: David Chase <drchase@google.com>
106 lines
1.8 KiB
Go
106 lines
1.8 KiB
Go
// Copyright 2021 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.
|
|
|
|
package fs_test
|
|
|
|
import (
|
|
"fmt"
|
|
"io/fs"
|
|
"log"
|
|
"os"
|
|
"testing/fstest"
|
|
)
|
|
|
|
func ExampleGlob() {
|
|
fsys := fstest.MapFS{
|
|
"file.txt": {},
|
|
"file.go": {},
|
|
"dir/file.txt": {},
|
|
"dir/file.go": {},
|
|
"dir/subdir/x.go": {},
|
|
}
|
|
|
|
patterns := []string{
|
|
"*.txt",
|
|
"*.go",
|
|
"dir/*.go",
|
|
"dir/*/x.go",
|
|
}
|
|
|
|
for _, pattern := range patterns {
|
|
matches, err := fs.Glob(fsys, pattern)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
fmt.Printf("%q matches: %v\n", pattern, matches)
|
|
}
|
|
|
|
// Output:
|
|
// "*.txt" matches: [file.txt]
|
|
// "*.go" matches: [file.go]
|
|
// "dir/*.go" matches: [dir/file.go]
|
|
// "dir/*/x.go" matches: [dir/subdir/x.go]
|
|
}
|
|
|
|
func ExampleReadFile() {
|
|
fsys := fstest.MapFS{
|
|
"hello.txt": {
|
|
Data: []byte("Hello, World!\n"),
|
|
},
|
|
}
|
|
|
|
data, err := fs.ReadFile(fsys, "hello.txt")
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
fmt.Print(string(data))
|
|
|
|
// Output:
|
|
// Hello, World!
|
|
}
|
|
|
|
func ExampleValidPath() {
|
|
paths := []string{
|
|
".",
|
|
"x",
|
|
"x/y/z",
|
|
"",
|
|
"..",
|
|
"/x",
|
|
"x/",
|
|
"x//y",
|
|
"x/./y",
|
|
"x/../y",
|
|
}
|
|
|
|
for _, path := range paths {
|
|
fmt.Printf("ValidPath(%q) = %t\n", path, fs.ValidPath(path))
|
|
}
|
|
|
|
// Output:
|
|
// ValidPath(".") = true
|
|
// ValidPath("x") = true
|
|
// ValidPath("x/y/z") = true
|
|
// ValidPath("") = false
|
|
// ValidPath("..") = false
|
|
// ValidPath("/x") = false
|
|
// ValidPath("x/") = false
|
|
// ValidPath("x//y") = false
|
|
// ValidPath("x/./y") = false
|
|
// ValidPath("x/../y") = false
|
|
}
|
|
|
|
func ExampleWalkDir() {
|
|
root := "/usr/local/go/bin"
|
|
fileSystem := os.DirFS(root)
|
|
|
|
fs.WalkDir(fileSystem, ".", func(path string, d fs.DirEntry, err error) error {
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
fmt.Println(path)
|
|
return nil
|
|
})
|
|
}
|