Skip to content

Commit 2d8d16c

Browse files
committed
Add embed_fs_filter.go
1 parent 49972f7 commit 2d8d16c

File tree

4 files changed

+47
-2
lines changed

4 files changed

+47
-2
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
golang
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package embeds
2+
3+
import (
4+
"embed"
5+
"fmt"
6+
"io/fs"
7+
8+
"github.com/devlights/gomy/output"
9+
)
10+
11+
//go:embed data/go*.txt
12+
var filteredContent embed.FS // 埋め込むファイルをフィルタリングしている
13+
14+
// EmbedFsFilter は、embed パッケージの機能を確認するサンプルです (埋め込むファイルをフィルタリング)
15+
func EmbedFsFilter() error {
16+
var (
17+
entries []fs.DirEntry
18+
buf []byte
19+
err error
20+
)
21+
22+
entries, err = filteredContent.ReadDir("data")
23+
if err != nil {
24+
return err
25+
}
26+
27+
for _, entry := range entries {
28+
var (
29+
name = entry.Name()
30+
path = fmt.Sprintf("data/%s", name)
31+
)
32+
33+
buf, err = content.ReadFile(path)
34+
if err != nil {
35+
return err
36+
}
37+
38+
output.Stdoutl(fmt.Sprintf("[%s]", name), string(buf))
39+
}
40+
41+
return nil
42+
}

internal/examples/basic/embeds/embed_fs_multifiles.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
//go:embed helloworld.txt
1212
var content embed.FS
1313

14+
// EmbedFsMultifiles は、embed パッケージの機能を確認するサンプルです (embed.FSとして複数ファイルを操作)
1415
func EmbedFsMultifiles() error {
1516
var (
1617
buf []byte
@@ -31,12 +32,12 @@ func EmbedFsMultifiles() error {
3132
//
3233
// 埋め込まれたディレクトリの操作
3334
//
34-
dirs, err := content.ReadDir("data")
35+
entries, err := content.ReadDir("data")
3536
if err != nil {
3637
return err
3738
}
3839

39-
for _, entry := range dirs {
40+
for _, entry := range entries {
4041
if entry.IsDir() {
4142
continue
4243
}

internal/examples/basic/embeds/examples.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,5 @@ func (r *register) Regist(m mappings.ExampleMapping) {
1919
m["embed_bytes"] = EmbedBytes
2020
m["embed_fs_singlefile"] = EmbedFsSingleFile
2121
m["embed_fs_multifiles"] = EmbedFsMultifiles
22+
m["embed_fs_filter"] = EmbedFsFilter
2223
}

0 commit comments

Comments
 (0)