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

Пользователь

от evalyn.barrows , в категории: Golang , год назад

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jeremy_larkin , год назад

@evalyn.barrows 

Для получения списка файлов и папок в определенной папке в Go, вы можете использовать пакет filepath и его функцию Walk.


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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package main

import (
	"fmt"
	"os"
	"path/filepath"
)

func main() {
	// Путь к папке, для которой нужно получить список файлов и папок
	root := "путь/к/папке"

	err := filepath.Walk(root, func(path string, info os.FileInfo, err error) error {
		if err != nil {
			return err
		}

		// Пропускаем корневую папку
		if path != root {
			if info.IsDir() {
				fmt.Println("Папка:", path)
			} else {
				fmt.Println("Файл:", path)
			}
		}

		return nil
	})

	if err != nil {
		fmt.Println("Ошибка:", err)
	}
}


Вы можете заменить "путь/к/папке" на путь к вашей нужной папке.


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

Пользователь

от bart , 4 месяца назад

@evalyn.barrows 

Кроме использования пакета filepath и его функции Walk, также можно воспользоваться пакетами os и ioutil для получения списка файлов и папок в определенной папке в Go. Вот пример использования этих пакетов:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package main

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

func main() {
	// Путь к папке, для которой нужно получить список файлов и папок
	root := "путь/к/папке"

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

	for _, file := range files {
		if file.IsDir() {
			fmt.Println("Папка:", file.Name())
		} else {
			fmt.Println("Файл:", file.Name())
		}
	}
}


В этом примере мы используем ioutil.ReadDir для чтения содержимого заданной папки и затем проходим по каждому элементу в возвращенном списке, печатая имя каждого файла или папки. Вам также нужно заменить "путь/к/папке" на путь к вашей нужной папке.