Как делать поиск файлов по маске в golang?

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

от felix , в категории: Golang , год назад

Как делать поиск файлов по маске в golang?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

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

@felix 

В Go можно использовать пакет filepath для выполнения поиска файлов по маске. Пример кода ниже показывает, как выполнить поиск всех файлов с расширением .txt:

 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
package main

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

func main() {
	// Указываем директорию, с которой нужно начать поиск
	root := "path/to/directory"

	// Вызываем функцию Walk, которая проходит по всем файлам и директориям,
	// начиная с указанной директории и выполняет функцию filepath.WalkFn для каждого найденного файла
	err := filepath.Walk(root, func(path string, info os.FileInfo, err error) error {
		// Проверяем, что это файл и его расширение .txt
		if !info.IsDir() && filepath.Ext(path) == ".txt" {
			fmt.Println(path)
		}
		return nil
	})

	if err != nil {
		fmt.Println("Error:", err)
	}
}


В этом примере переменная root содержит путь к директории, в которой нужно выполнить поиск. Функция filepath.Walk проходит по всем файлам и директориям, начиная с указанной директории, и вызывает функцию указанного типа filepath.WalkFn для каждого найденного файла. Внутри этой функции мы проверяем, что это файл и его расширение .txt, и выводим его путь.


Вы должны заменить "path/to/directory" на свой путь к директории, в которой нужно выполнить поиск файлов.

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

от shirley.vonrueden , 6 месяцев назад

@felix 

Таким образом, данный код с помощью функции filepath.Walk позволяет рекурсивно пройти по всем файлам и директориям в указанной директории и выполнить определенные действия для файлов, соответствующих заданной маске.