Golang *File points to a file or directory ?
In this tutorial, we will learn how to find out if the *File pointer is pointing to a file or directory. The codes are self explanatory
fileordir.go
package main
import (
"fmt"
"os"
"flag"
)
func main() {
flag.Parse()
fileordir := flag.Arg(0) // get first argument
file, err := os.Open(fileordir)
if err != nil {
fmt.Println(err)
return
}
defer file.Close()
fileInfo, err := file.Stat()
if err != nil {
fmt.Println(err)
return
}
switch mode := fileInfo.Mode(); {
case mode.IsDir():
fmt.Println(fileordir + " is a directory")
case mode.IsRegular():
fmt.Println(fileordir + " is a file")
}
}
localhost:~ admin$ go run fileordir.go /Users/admin/for
/Users/admin/for is a file
localhost:~ admin$ go run fileordir.go /Users/admin
/Users/admin is a directory
Hope this can be useful.
See also : Golang : Copy directory - including sub-directories and files
By Adam Ng
IF you gain some knowledge or the information here solved your programming problem. Please consider donating to the less fortunate or some charities that you like. Apart from donation, planting trees, volunteering or reducing your carbon footprint will be great too.
Advertisement
Tutorials
+4.4k Golang : Converting individual Jawi alphabet to Rumi(Romanized) alphabet example
+8.3k Golang : Oanda bot with Telegram and RSI example
+20k Golang : Measure http.Get() execution time
+12.4k Golang : Get month name from date example
+12.2k Golang : Detect user location with HTML5 geo-location
+8.4k Useful methods to access blocked websites
+12.7k Golang : Sort and reverse sort a slice of bytes
+13.7k Android Studio : Password input and reveal password example
+7k Golang : How to solve "too many .rsrc sections" error?
+10k Golang : Function wrapper that takes arguments and return result example
+11.2k Golang : Roll the dice example
+7k Golang : Find the shortest line of text example