osutil.go 373 B

123456789101112131415161718
  1. package osutil
  2. import (
  3. "os"
  4. "runtime"
  5. )
  6. func Rename(from, to string) error {
  7. if runtime.GOOS == "windows" {
  8. os.Chmod(to, 0666) // Make sure the file is user writeable
  9. err := os.Remove(to)
  10. if err != nil && !os.IsNotExist(err) {
  11. return err
  12. }
  13. }
  14. defer os.Remove(from) // Don't leave a dangling temp file in case of rename error
  15. return os.Rename(from, to)
  16. }