From f154da9e12608589e8d5f0508f908a0c3e88a1bb Mon Sep 17 00:00:00 2001 From: Tianon Gravi Date: Thu, 15 Jan 2015 11:54:00 -0700 Subject: Imported Upstream version 1.4 --- src/os/error_windows.go | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/os/error_windows.go (limited to 'src/os/error_windows.go') 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 +} -- cgit v1.2.3