Для сканирования каталога на языке программирования 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)
}
Эти методы позволяют сканировать каталог и распечатывать пути ко всем файлам и каталогам в нем. Вы можете изменить код для выполнения определенных действий в соответствии с вашими требованиями.