Папка файлов внутри программы в Go
Целую папку кладут в переменную специального типа из стандартной библиотеки. В директиве указывают имя каталога относительно файла с кодом, а не один файл.
Тип набора хранит дерево вшитых файлов.
Пакет подключают обычным импортом, потому
что имя типа пишут в объявлении переменной.
Путь в ReadFile пишут с прямым
слэшем, даже на Windows; при ошибке
проверяют err.
В каталоге files лежит hello.txt;
вшиваем папку и читаем файл по пути:
package main
import (
"embed"
"fmt"
)
//go:embed files
var box embed.FS
func main() {
data, err := box.ReadFile("files/hello.txt")
if err != nil {
fmt.Println("error")
return
}
fmt.Println(string(data))
}
Содержимое files/hello.txt при сборке:
hi
Дана папка files с файлом tip.txt:
read me
Опишите набор box для этой папки
и выведите текст tip.txt через
ReadFile.
Дана папка data с файлом data/a.txt,
внутри одна буква "x". Напишите
путь аргумента для ReadFile, если
директива указывает data.
Скажите, чем импорт пакета для набора отличается от случая с одной строкой и пустым импортом.