Newer
Older
// +build windows
package files
import (
"fmt"
"os"
)
// TODO finish up.
func Rename(oldname, newname string) error {
// Some extra fluff here.
if fs, err := os.Stat(newname); !os.IsNotExist(err) {
if fs.Mode().IsRegular() && isWritable(fs.Mode().Perm()) {
errRM := os.Remove(newname)
if errRM != nil {
return errRM
}
} else {
return fmt.Errorf("Target exists and cannot be over-written (is a directory or read-only file): " + newname)
}
}
errRN := os.Rename(oldname, newname)
if errRN != nil {
return errRN
}
return nil
}