Для повторного измерения времени обхода директории в языке Go можно использовать библиотеку time
и функцию Walk
из пакета filepath
. Walk
выполняет рекурсивное обход директории и передает каждый элемент директории в функцию обратного вызова.
Вот пример кода, который измеряет время обхода директории и выводит информацию о каждом элементе:
package main import ( "fmt" "os" "path/filepath" "time" ) func main() { startTime := time.Now() dir := "/path/to/directory" err := filepath.Walk(dir, func(path string, info os.FileInfo, err error) error { if err != nil { return err } fmt.Println("Name:", info.Name()) fmt.Println("Size:", info.Size()) fmt.Println("Mode:", info.Mode()) fmt.Println("Mod Time:", info.ModTime()) fmt.Println("Is Dir:", info.IsDir()) fmt.Println("") return nil }) if err != nil { fmt.Println("Error:", err) } elapsedTime := time.Since(startTime) fmt.Println("Elapsed Time:", elapsedTime) }
В этом примере мы используем функцию Walk
, которая принимает путь к директории, начиная с которой необходимо выполнять обход. Внутри функции обратного вызова func(path string, info os.FileInfo, err error) error
, мы проверяем наличие ошибок и выводим информацию о каждом элементе в директории. Затем мы измеряем время, прошедшее с начала выполнения, используя time.Now()
и time.Since()
, чтобы получить общее время выполнения.
Определенно, данный пример кода можно дополнить или изменить в зависимости от ваших конкретных потребностей. Разработчик может использовать это вначале своего проекта и затем настроить его под свои потребности. Но принципиальный каркас таков.