Go: ottenere informazioni sui file di una directory

Il Go, noto anche come Golang, offre diverse funzionalità incorporate per gestire file e directory, rendendo più semplice per gli sviluppatori lavorare con il filesystem. In questo articolo, esamineremo come utilizzare il pacchetto os per leggere il contenuto di una directory e ottenere informazioni sui file.

Per leggere i file di una directory in Go, possiamo utilizzare la funzione ReadDir del pacchetto os. Questa funzione restituisce una slice di os.DirEntry, che rappresentano le voci della directory.

Ecco un esempio di come utilizzare ReadDir:


package main

import (
    "fmt"
    "os"
)

func main() {
    // Percorso della directory da leggere
    dirPath := "./"

    // Legge il contenuto della directory
    entries, err := os.ReadDir(dirPath)
    if err != nil {
        fmt.Println("Errore nella lettura della directory:", err)
        os.Exit(1)
    }

    // Stampa il nome di ogni voce trovata
    for _, entry := range entries {
        fmt.Println(entry.Name())
    }
}

Per ottenere informazioni dettagliate su un file specifico, come le dimensioni, i permessi o i tempi di modifica, possiamo utilizzare il metodo Info() che si trova su un oggetto os.DirEntry ottenuto dalla ReadDir.

Ecco come si può fare:


package main

import (
    "fmt"
    "os"
)

func main() {
    dirPath := "./"

    entries, err := os.ReadDir(dirPath)
    if err != nil {
        fmt.Println("Errore nella lettura della directory:", err)
        os.Exit(1)
    }

    for _, entry := range entries {
        info, err := entry.Info()
        if err != nil {
            fmt.Println("Errore nell'ottenere le informazioni del file:", err)
            continue
        }

        // Stampa dettagli del file
        fmt.Printf("Nome: %s, Dimensione: %d, Permessi: %s\n", info.Name(), info.Size(), info.Mode())
    }
}

Questi sono solo alcuni esempi basilari di come lavorare con i file e le directory in Go. Il pacchetto os fornisce molte altre funzioni utili che possono aiutarti a realizzare operazioni più complesse, come la modifica dei permessi dei file, il controllo se una voce è un file o una directory, e molto altro.

Go rende semplice lavorare con il filesystem grazie alla sua standard library ben progettata. Sperimentare con queste funzioni e leggere la documentazione ufficiale può aiutarti a sfruttare appieno le capacità del linguaggio per le operazioni sui file e sulle directory.

Torna su