Listare files e directories in Go

Mattepuffo's logo
Listare files e directories in Go

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!


Condividi

Commentami!