Сканирование каталога в Golang (язык программирования Go)

Для сканирования каталога на языке программирования Go (Golang) можно использовать различные методы. Вот несколько часто используемых подходов:

Метод 1: использование пакета os

package main
import (
    "fmt"
    "os"
    "path/filepath"
)
func main() {
    root := "/path/to/directory"
    err := filepath.Walk(root, func(path string, info os.FileInfo, err error) error {
        if err != nil {
            return err
        }
        fmt.Println(path)
        return nil
    })
    if err != nil {
        fmt.Println(err)
    }
}

Метод 2. Использование пакета ioutil

package main
import (
    "fmt"
    "io/ioutil"
    "path/filepath"
)
func main() {
    root := "/path/to/directory"
    files, err := ioutil.ReadDir(root)
    if err != nil {
        fmt.Println(err)
        return
    }
    for _, file := range files {
        fmt.Println(filepath.Join(root, file.Name()))
    }
}

Метод 3. Использование пакета filepath с собственной рекурсивной функцией

package main
import (
    "fmt"
    "os"
    "path/filepath"
)
func scanDirectory(path string) {
    err := filepath.Walk(path, func(path string, info os.FileInfo, err error) error {
        if err != nil {
            return err
        }
        fmt.Println(path)
        return nil
    })
    if err != nil {
        fmt.Println(err)
    }
}
func main() {
    root := "/path/to/directory"
    scanDirectory(root)
}

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