| // 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 | |
| }) | |
| } | |