3

Подскажите пожалуйста. Как на golang получить список файлов и папок в определённой папке?

Rakzin Roman
  • 5,720

2 Answers2

5
package main

import (
    "fmt"
    "io/ioutil"
    "log"
)

func main() {
    files, err := ioutil.ReadDir(".")
    if err != nil {
        log.Fatal(err)
    }

    for _, file := range files {
        fmt.Println(file.Name(), file.IsDir())
    }
}

https://golang.org/pkg/io/ioutil/#ReadDir
https://golang.org/pkg/os/#FileInfo IsDir() -является ли папкой

Rakzin Roman
  • 5,720
1

На Go вы можете использовать функцию os.Readdir, чтобы получить список файлов и папок в определенной папке. Она принимает путь к папке и возвращает слайс структур os.FileInfo, которые содержат информацию о файлах и папках.

Вот пример кода, который использует os.Readdir для получения списка файлов и папок в текущей директории:

package main

import ( "fmt" "os" )

func main() { // Открываем текущую директорию dir, err := os.Open(".") if err != nil { fmt.Println(err) return } defer dir.Close()

// Получаем список файлов и папок
files, err := dir.Readdir(-1)
if err != nil {
    fmt.Println(err)
    return
}

// Выводим имена файлов и папок
for _, file := range files {
    fmt.Println(file.Name())
}

}

В качестве аргумента Readdir можете передать число, указывающее сколько файлов и папок нужно вернуть. Если вы хотите получить все файлы и папки, передайте

hedgehogues
  • 9,569