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  }