github.com/peggyl/go@v0.0.0-20151008231540-ae315999c2d5/src/os/error_windows.go (about) 1 // Copyright 2012 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package os 6 7 import "syscall" 8 9 func isExist(err error) bool { 10 switch pe := err.(type) { 11 case nil: 12 return false 13 case *PathError: 14 err = pe.Err 15 case *LinkError: 16 err = pe.Err 17 } 18 return err == syscall.ERROR_ALREADY_EXISTS || 19 err == syscall.ERROR_FILE_EXISTS || err == ErrExist 20 } 21 22 const _ERROR_BAD_NETPATH = syscall.Errno(53) 23 24 func isNotExist(err error) bool { 25 switch pe := err.(type) { 26 case nil: 27 return false 28 case *PathError: 29 err = pe.Err 30 case *LinkError: 31 err = pe.Err 32 } 33 return err == syscall.ERROR_FILE_NOT_FOUND || 34 err == _ERROR_BAD_NETPATH || 35 err == syscall.ERROR_PATH_NOT_FOUND || err == ErrNotExist 36 } 37 38 func isPermission(err error) bool { 39 switch pe := err.(type) { 40 case nil: 41 return false 42 case *PathError: 43 err = pe.Err 44 case *LinkError: 45 err = pe.Err 46 } 47 return err == syscall.ERROR_ACCESS_DENIED || err == ErrPermission 48 }