Listare files e directories in Go
In Go abbiamo, almeno, due modi per listare files e directories:
- usando os.File.Readdir
- usando ioutil.ReadDir
Qui sotto vediamo un esempio di entrambi.
Partiamo da os.File.Readdir:
package main
import (
"fmt"
"os"
)
func main() {
dir := "/home/fermat/"
f, err := os.Open(dir)
if err != nil {
fmt.Println(err)
os.Exit(0)
}
files, err := f.Readdir(0)
if err != nil {
fmt.Println(err)
os.Exit(0)
}
for _, v := range files {
fmt.Println(v.Name(), v.IsDir())
}
}
Readdir va a leggere il contenuto della directory associata alla funzione Open.
Per quanto riguarda ioutil.ReadDir:
package main
import (
"fmt"
"io/ioutil"
"os"
)
func main() {
dir := "/home/fermat/"
files, err := ioutil.ReadDir(dir)
if err != nil {
fmt.Println(err)
os.Exit(0)
}
for _, v := range files {
fmt.Println(v.Name(), v.IsDir())
}
}
Tra i due personalmente preferisco il secondo.
Enjoy!
go ioutil readdir
Commentami!