-
Notifications
You must be signed in to change notification settings - Fork 0
/
example_test.go
42 lines (39 loc) · 1.03 KB
/
example_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package h5ailist_test
import (
"context"
"fmt"
"github.com/kenshaw/h5ailist"
)
func Example() {
var items []h5ailist.Item
if err := h5ailist.Walk(context.Background(), "https://larsjung.de/h5ai/demo/file preview", func(n string, item *h5ailist.Item, err error) error {
switch {
case err != nil:
return err
}
items = append(items, *item)
return nil
}); err != nil {
panic(err)
}
var directories, files int64
for i, item := range items {
fmt.Printf("%d: %q\n", i, item.Href)
if item.IsDir() {
directories++
} else {
files++
}
}
fmt.Printf("items: %d directories: %d files: %d\n", len(items), directories, files)
// Output:
// 0: "/h5ai/demo/file%20preview/"
// 1: "/h5ai/demo/file preview/class_cli.py"
// 2: "/h5ai/demo/file preview/image-1.jpg"
// 3: "/h5ai/demo/file preview/image-2.jpg"
// 4: "/h5ai/demo/file preview/image-3.jpg"
// 5: "/h5ai/demo/file preview/modulejs-1.14.0.js"
// 6: "/h5ai/demo/file preview/options.css"
// 7: "/h5ai/demo/file preview/text.md"
// items: 8 directories: 1 files: 7
}