diff options
Diffstat (limited to 'src/os/error_windows.go')
-rw-r--r-- | src/os/error_windows.go | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/os/error_windows.go b/src/os/error_windows.go new file mode 100644 index 000000000..83db6c078 --- /dev/null +++ b/src/os/error_windows.go @@ -0,0 +1,45 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package os + +import "syscall" + +func isExist(err error) bool { + switch pe := err.(type) { + case nil: + return false + case *PathError: + err = pe.Err + case *LinkError: + err = pe.Err + } + return err == syscall.ERROR_ALREADY_EXISTS || + err == syscall.ERROR_FILE_EXISTS || err == ErrExist +} + +func isNotExist(err error) bool { + switch pe := err.(type) { + case nil: + return false + case *PathError: + err = pe.Err + case *LinkError: + err = pe.Err + } + return err == syscall.ERROR_FILE_NOT_FOUND || + err == syscall.ERROR_PATH_NOT_FOUND || err == ErrNotExist +} + +func isPermission(err error) bool { + switch pe := err.(type) { + case nil: + return false + case *PathError: + err = pe.Err + case *LinkError: + err = pe.Err + } + return err == syscall.ERROR_ACCESS_DENIED || err == ErrPermission +} |