github.com/richardwilkes/toolbox@v1.121.0/xio/fs/readable.go (about)

     1  // Copyright (c) 2016-2024 by Richard A. Wilkes. All rights reserved.
     2  //
     3  // This Source Code Form is subject to the terms of the Mozilla Public
     4  // License, version 2.0. If a copy of the MPL was not distributed with
     5  // this file, You can obtain one at http://mozilla.org/MPL/2.0/.
     6  //
     7  // This Source Code Form is "Incompatible With Secondary Licenses", as
     8  // defined by the Mozilla Public License, version 2.0.
     9  
    10  package fs
    11  
    12  import "os"
    13  
    14  // FileIsReadable returns true if the path points to a regular file that we have permission to read.
    15  func FileIsReadable(path string) bool {
    16  	if fi, err := os.Stat(path); err == nil {
    17  		mode := fi.Mode()
    18  		return !mode.IsDir() && mode.IsRegular() && mode.Perm()&0o400 != 0
    19  	}
    20  	return false
    21  }