Skip to content

Commit 49972f7

Browse files
committed
Add embed_fs examples
1 parent 01dd7a8 commit 49972f7

File tree

6 files changed

+90
-0
lines changed

6 files changed

+90
-0
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
dotnet
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
golang
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
python
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
package embeds
2+
3+
import (
4+
"embed"
5+
"fmt"
6+
7+
"github.com/devlights/gomy/output"
8+
)
9+
10+
//go:embed data
11+
//go:embed helloworld.txt
12+
var content embed.FS
13+
14+
func EmbedFsMultifiles() error {
15+
var (
16+
buf []byte
17+
err error
18+
)
19+
20+
//
21+
// 埋め込まれたファイルの操作
22+
//
23+
buf, err = content.ReadFile("helloworld.txt")
24+
if err != nil {
25+
return err
26+
}
27+
28+
output.Stdoutl("[helloworld.txt]", string(buf))
29+
output.StdoutHr()
30+
31+
//
32+
// 埋め込まれたディレクトリの操作
33+
//
34+
dirs, err := content.ReadDir("data")
35+
if err != nil {
36+
return err
37+
}
38+
39+
for _, entry := range dirs {
40+
if entry.IsDir() {
41+
continue
42+
}
43+
44+
var (
45+
name = entry.Name()
46+
path = fmt.Sprintf("data/%s", name)
47+
)
48+
49+
buf, err = content.ReadFile(path)
50+
if err != nil {
51+
return err
52+
}
53+
54+
output.Stdoutl(fmt.Sprintf("[%s]", name), string(buf))
55+
}
56+
57+
return nil
58+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package embeds
2+
3+
import (
4+
"embed"
5+
"encoding/hex"
6+
"os"
7+
)
8+
9+
//go:embed helloworld.txt
10+
var f embed.FS
11+
12+
// EmbedFsSingleFile は、embed パッケージの機能を確認するサンプルです (embed.FSとして単独ファイルを操作)
13+
func EmbedFsSingleFile() error {
14+
b, err := f.ReadFile("helloworld.txt")
15+
if err != nil {
16+
return err
17+
}
18+
19+
dumper := hex.Dumper(os.Stdout)
20+
defer dumper.Close()
21+
22+
if _, err := dumper.Write(b); err != nil {
23+
return err
24+
}
25+
26+
return nil
27+
}

internal/examples/basic/embeds/examples.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,6 @@ func NewRegister() mappings.Register {
1717
func (r *register) Regist(m mappings.ExampleMapping) {
1818
m["embed_string"] = EmbedString
1919
m["embed_bytes"] = EmbedBytes
20+
m["embed_fs_singlefile"] = EmbedFsSingleFile
21+
m["embed_fs_multifiles"] = EmbedFsMultifiles
2022
}

0 commit comments

Comments
 (0)