РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
603 of 1593 menu

Функция fs.ReadDir

Функция fs.ReadDir читает содержимое директории и возвращает срез []fs.DirEntry. В первый параметр передается интерфейс fs.FS, который представляет файловую систему, во второй параметр - путь к директории, содержимое которой нужно прочитать. Функция возвращает записи директории и ошибку, если она произошла.

Синтаксис

entries, err := fs.ReadDir(fsys, dir)

Пример

Давайте прочитаем содержимое текущей директории:

package main import ( "fmt" "io/fs" "os" ) func main() { entries, err := fs.ReadDir(os.DirFS("."), ".") if err != nil { fmt.Println(err) return } for _, entry := range entries { fmt.Println(entry.Name()) } }

Результат выполнения кода:

"file1.txt" "file2.txt" "dir1" "dir2"

Пример

Давайте прочитаем содержимое вложенной директории "data":

package main import ( "fmt" "io/fs" "os" ) func main() { entries, err := fs.ReadDir(os.DirFS("."), "data") if err != nil { fmt.Println(err) return } for _, entry := range entries { if entry.IsDir() { fmt.Printf("Directory: %s\n", entry.Name()) } else { fmt.Printf("File: %s\n", entry.Name()) } } }

Результат выполнения кода:

"Directory: logs" "File: config.json" "File: settings.ini"

Пример

Давайте получим информацию о размере каждого файла в директории:

package main import ( "fmt" "io/fs" "os" ) func main() { entries, err := fs.ReadDir(os.DirFS("."), ".") if err != nil { fmt.Println(err) return } for _, entry := range entries { info, err := entry.Info() if err != nil { fmt.Printf("Error getting info for %s: %v\n", entry.Name(), err) continue } if !entry.IsDir() { fmt.Printf("%s: %d bytes\n", entry.Name(), info.Size()) } } }

Результат выполнения кода:

"file1.txt: 1024 bytes" "file2.txt: 2048 bytes"

Смотрите также

  • функцию os.ReadDir,
    которая читает содержимое директории через операционную систему
  • функцию filepath.WalkDir,
    которая обходит дерево директорий рекурсивно
  • функцию fs.Stat,
    которая получает информацию о файле или директории
  • интерфейс fs.DirEntry,
    который представляет запись директории в файловой системе
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить