Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗goSpEdNm 198 of 280 menu
◀ ▶

Имена файлов во встроенной папке в Go

Иногда нужно узнать, какие файлы лежат внутри набора, а не только прочитать один заранее известный путь. Для этого у набора есть команда списка содержимого каталога.

Сначала получают записи каталога, затем берут имя нужного файла и снова вызывают чтение по полному пути от корня вшитой папки. Пустые подпапки и служебные точки в списке пропускают по смыслу задачи. Аргумент ReadDir это каталог внутри набора, пути с прямым слэшем.

В files лежат a.txt и b.txt; перечислим каталог и прочитаем b.txt:

package main import ( "embed" "fmt" ) //go:embed files var box embed.FS func main() { entries, err := box.ReadDir("files") if err != nil { fmt.Println("error") return } for _, e := range entries { fmt.Println(e.Name()) } data, err := box.ReadFile("files/b.txt") if err != nil { fmt.Println("error") return } fmt.Println(string(data)) }

Содержимое files/b.txt:

second

Дана папка files:

one
two

Выведите число файлов в files через ReadDir и текст y.txt.

Дана папка cfg с одним файлом cfg/app.txt и текстом "on". Напишите аргумент для ReadDir и полный путь для чтения этого файла.

Скажите, почему после списка имен все равно передают полный путь в ReadFile, а не только имя из Name().

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить