]> Cypherpunks repositories - gostls13.git/commitdiff
path/filepath: add example for Walk
authorJean-Francois Cantin <jfcantin@gmail.com>
Tue, 26 Sep 2017 22:07:27 +0000 (16:07 -0600)
committerIan Lance Taylor <iant@golang.org>
Wed, 27 Sep 2017 14:52:58 +0000 (14:52 +0000)
Fixes: #22052
Change-Id: Ia056871b35ecc1a8c5ac891402fc1c5702731623
Reviewed-on: https://go-review.googlesource.com/66330
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/path/filepath/example_unix_test.go

index cd8233ceb6a60e2d3f0d55199d0dcb60d7912176..40bc547fe46f2c233b747aa570f551b325586a04 100644 (file)
@@ -8,6 +8,7 @@ package filepath_test
 
 import (
        "fmt"
+       "os"
        "path/filepath"
 )
 
@@ -79,3 +80,24 @@ func ExampleJoin() {
        // a/b/c
        // a/b/c
 }
+func ExampleWalk() {
+       dir := "dir/to/walk"
+       subDirToSkip := "skip" // dir/to/walk/skip
+
+       err := filepath.Walk(dir, func(path string, info os.FileInfo, err error) error {
+               if err != nil {
+                       fmt.Printf("prevent panic by handling failure accessing a path %q: %v\n", dir, err)
+                       return err
+               }
+               if info.IsDir() && info.Name() == subDirToSkip {
+                       fmt.Printf("skipping a dir without errors: %+v \n", info.Name())
+                       return filepath.SkipDir
+               }
+               fmt.Printf("visited file: %q\n", path)
+               return nil
+       })
+
+       if err != nil {
+               fmt.Printf("error walking the path %q: %v\n", dir, err)
+       }
+}