Skip to content

Instantly share code, notes, and snippets.

@klauspost
Last active January 6, 2016 12:23
Show Gist options
  • Save klauspost/5f87caf402a8abf369d5 to your computer and use it in GitHub Desktop.
Save klauspost/5f87caf402a8abf369d5 to your computer and use it in GitHub Desktop.
filesystem test
package main
import (
"fmt"
"io/ioutil"
"log"
"os"
)
func main() {
dir, err := os.Getwd()
if err != nil {
log.Fatal(err)
}
if len(os.Args) > 1 {
dir = os.Args[1]
}
fmt.Printf(`Current dir: "%s"`+"\n", dir)
f, err := os.Open(dir)
if err != nil {
log.Fatal("os.Open", err)
}
fi, err := f.Stat()
if err != nil {
log.Fatal("f.Stat", err)
}
fmt.Println("Main dir Stat:")
printFi(fi)
info, err := ioutil.ReadDir(dir)
if err != nil {
log.Fatal("ioutil.ReadDir", err)
}
fmt.Println("\nReaddir results:")
for i := range info {
fmt.Println("---")
printFi(info[i])
}
fmt.Println("Success")
}
func printFi(fi os.FileInfo) {
mode := fi.Mode()
fmt.Printf(`Name "%s"`+"\n", fi.Name())
fmt.Println("Size", fi.Size())
fmt.Println("IsDir", fi.IsDir())
fmt.Println("Mode.IsDir", mode.IsDir())
fmt.Println("Mode.IsRegular", mode.IsRegular())
fmt.Println("Mode.String", mode.String())
fmt.Println("Mode.Perm:", mode.Perm().String())
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment