os: make RemoveAll() work on windows
R=golang-dev, rsc1
CC=golang-dev
https://golang.org/cl/2212041
diff --git a/src/pkg/os/path.go b/src/pkg/os/path.go
index bea9713..74c83ab 100644
--- a/src/pkg/os/path.go
+++ b/src/pkg/os/path.go
@@ -84,7 +84,6 @@
if err != nil {
return err
}
- defer fd.Close()
// Remove contents & return first error.
err = nil
@@ -105,6 +104,9 @@
}
}
+ // Close directory, because windows won't remove opened directory.
+ fd.Close()
+
// Remove directory.
err1 := Remove(path)
if err == nil {