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

Метод os.File.ReadDir

Метод os.File.ReadDir читает содержимое директории и возвращает срез объектов, реализующих интерфейс fs.DirEntry. В первый параметр метод принимает целое число n, которое определяет количество элементов для чтения. Если передать n <= 0, метод прочитает все записи директории. Метод возвращает срез []fs.DirEntry и ошибку error.

Синтаксис

entries, err := file.ReadDir(n)

Пример

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

package main import ( "fmt" "os" ) func main() { file, err := os.Open(".") if err != nil { fmt.Println("Error opening directory:", err) return } defer file.Close() entries, err := file.ReadDir(-1) if err != nil { fmt.Println("Error reading directory:", err) return } for _, entry := range entries { fmt.Println(entry.Name()) } }

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

"file1.txt" "file2.txt" "folder1" "folder2"

Пример

Давайте прочитаем только первые две записи из директории:

package main import ( "fmt" "os" ) func main() { file, err := os.Open(".") if err != nil { fmt.Println("Error opening directory:", err) return } defer file.Close() entries, err := file.ReadDir(2) if err != nil { fmt.Println("Error reading directory:", err) return } for _, entry := range entries { fmt.Println(entry.Name()) } }

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

"file1.txt" "file2.txt"

Пример

Давайте проверим, является ли каждый элемент директории файлом или папкой:

package main import ( "fmt" "os" ) func main() { file, err := os.Open(".") if err != nil { fmt.Println("Error opening directory:", err) return } defer file.Close() entries, err := file.ReadDir(-1) if err != nil { fmt.Println("Error reading directory:", err) return } for _, entry := range entries { if entry.IsDir() { fmt.Printf("%s is a directory\n", entry.Name()) } else { fmt.Printf("%s is a file\n", entry.Name()) } } }

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

"file1.txt is a file" "file2.txt is a file" "folder1 is a directory" "folder2 is a directory"

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

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