Список каталогов
Используйте функцию ioutil.ReadDir в пакете io/ioutil. Возвращает отсортированный срез, содержащий элементы типа os.FileInfo.
Код в следующем примере печатает отсортированный список всех имен файлов в текущем каталоге.
files, err := ioutil.ReadDir(".")
if err != nil {
log.Fatal(err)
}
for _, f := range files {
fmt.Println(f.Name())
}
Пример вывода:
dev
etc
tmp
usr
Посетить все файлы и папки в дереве каталогов
Используйте функцию filepath.Walk в пакете path/filepath.
- Она просматривает файловое дерево, вызывая функцию типа filepath.WalkFunc для каждого файла или каталога в дереве, включая корень.
- Файлы идут в лексическом порядке.
- Не следует по символическим ссылкам.
Код в следующем примере перечисляет пути и размеры всех файлов и каталогов в дереве файлов с корнем в текущем каталоге.
err := filepath.Walk(".",
func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
fmt.Println(path, info.Size())
return nil
})
if err != nil {
log.Println(err)
}
Пример вывода:
. 1644
dev 1644
dev/null 0
dev/random 0
dev/urandom 0
dev/zero 0
etc 1644
etc/group 116
etc/hosts 20
etc/passwd 0
etc/resolv.conf 0
tmp 548
usr 822
usr/local 822
usr/local/go 822
usr/local/go/lib 822
usr/local/go/lib/time 822
usr/local/go/lib/time/zoneinfo.zip 366776
Читайте также:
- Найти текущий рабочий каталог в Golang
- Основы Go: интерфейс Reader
- Читать файл (stdin) построчно в Golang
Комментариев нет:
Отправить комментарий