]> Cypherpunks repositories - gostls13.git/commit
path/filepath: add WalkDir
authorRuss Cox <rsc@golang.org>
Thu, 29 Oct 2020 16:20:53 +0000 (12:20 -0400)
committerRuss Cox <rsc@golang.org>
Fri, 6 Nov 2020 15:33:23 +0000 (15:33 +0000)
commitd21af00dd22d478d0026797c91961168ba83aff9
treeb33e02ad80f460e0e11ba7d6f40b2f464bf42172
parent854e892ce17e2555c59fce5b92f64bc505ba5d8c
path/filepath: add WalkDir

WalkDir is like Walk but can use ReadDir to read directories,
instead of Readdirnames + Lstat on every entry,
which is usually a significant performance improvement.
(The Lstat can still happen if the walk function calls d.Info.)

Fixes #42027.

[Replay of CL 266240 after it was reverted due to accidentally
enabling on Windows a test that does not work on Windows.
The original code only ran the test on os.Getuid() > 0.
The rolled-back CL skipped the test on os.Getuid() == 0.
But on Windows, os.Getuid(), it turns out, always returns -1.
So what looked like a test for root was also excluding Windows.
This CL revises the test to skip Windows explicitly.]

Change-Id: I9b3661013d6449b7486532445d934ae91e5393ef
Reviewed-on: https://go-review.googlesource.com/c/go/+/267887
Trust: Russ Cox <rsc@golang.org>
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
src/path/filepath/export_test.go
src/path/filepath/path.go
src/path/filepath/path_test.go