1
0
mirror of https://github.com/golang/go synced 2024-11-21 10:44:39 -07:00

doc: provide example filepath.Walk for go1

R=golang-dev, r, r
CC=golang-dev
https://golang.org/cl/5674067
This commit is contained in:
Mike Rosset 2012-02-17 12:45:55 +11:00 committed by Rob Pike
parent 785ee50c55
commit 91672686da
3 changed files with 39 additions and 8 deletions

View File

@ -1540,12 +1540,24 @@ instead of a <code>Visitor</code> interface value.
The <code>WalkFunc</code> function will be called even for files or directories that could not be opened;
in such cases the error argument will describe the failure.
If a directory's contents are to be skipped,
the function should return the value <code>SkipDir</code>.
the function should return the value <a href="/pkg/path/filepath/#variables"><code>filepath.SkipDir</code></a>
</p>
<p>
<font color="red">TODO: add an example?</font>
</p>
<pre><!--{{code "progs/go1.go" `/STARTWALK/` `/ENDWALK/`}}
--> markFn := func(path string, info os.FileInfo, err error) error {
if path == &#34;pictures&#34; { // Will skip walking of directory pictures and its contents.
return filepath.SkipDir
}
if err != nil {
return err
}
log.Println(path)
return nil
}
err := filepath.Walk(&#34;.&#34;, markFn)
if err != nil {
log.Fatal(err)
}</pre>
<p>
<em>Updating</em>:

View File

@ -1439,12 +1439,10 @@ instead of a <code>Visitor</code> interface value.
The <code>WalkFunc</code> function will be called even for files or directories that could not be opened;
in such cases the error argument will describe the failure.
If a directory's contents are to be skipped,
the function should return the value <code>SkipDir</code>.
the function should return the value <a href="/pkg/path/filepath/#variables"><code>filepath.SkipDir</code></a>
</p>
<p>
<font color="red">TODO: add an example?</font>
</p>
{{code "progs/go1.go" `/STARTWALK/` `/ENDWALK/`}}
<p>
<em>Updating</em>:

View File

@ -12,6 +12,7 @@ import (
"fmt"
"log"
"os"
"path/filepath"
"testing"
"time"
"unicode"
@ -28,6 +29,7 @@ func main() {
runeType()
errorExample()
timePackage()
walkExample()
osIsExist()
}
@ -183,6 +185,25 @@ func timePackage() {
sleepUntil(time.Now().Add(123 * time.Millisecond))
}
func walkExample() {
// STARTWALK OMIT
markFn := func(path string, info os.FileInfo, err error) error {
if path == "pictures" { // Will skip walking of directory pictures and its contents.
return filepath.SkipDir
}
if err != nil {
return err
}
log.Println(path)
return nil
}
err := filepath.Walk(".", markFn)
if err != nil {
log.Fatal(err)
}
// ENDWALK OMIT
}
func initializationFunction(c chan int) {
c <- 1
}