Maison >développement back-end >Golang >Comment puis-je répertorier efficacement le contenu d'un répertoire dans Go ?

Comment puis-je répertorier efficacement le contenu d'un répertoire dans Go ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-21 02:40:10751parcourir

How Can I Efficiently List a Directory's Contents in Go?

Répertorier efficacement le contenu d'un répertoire dans Go

Les programmeurs rencontrent souvent le besoin de répertorier les fichiers et les dossiers dans un répertoire spécifique dans Go. Cependant, naviguer dans l’environnement des packages peut s’avérer difficile. Cet article répond à cette exigence et propose une solution.

La fonction filepath.Walk, bien qu'utile, n'est peut-être pas la meilleure option pour répertorier le contenu d'un répertoire sans approfondir les sous-répertoires. La solution réside dans le package os et la fonction ReadDir.

Comme décrit dans la documentation officielle, ReadDir "lit le répertoire nommé, renvoyant toutes ses entrées de répertoire triées par nom de fichier". Le résultat est une tranche de types os.DirEntry.

Voici un exemple simple qui utilise la fonction ReadDir :

package main

import (
    "fmt"
    "os"
     "log"
)

func main() {
    entries, err := os.ReadDir("./")
    if err != nil {
        log.Fatal(err)
    }
 
    for _, e := range entries {
            fmt.Println(e.Name())
    }
}

Ce code parcourt le répertoire actuel et imprime les noms de toutes les entrées, y compris les fichiers et les dossiers. Notez que les dossiers ne sont pas spécifiquement marqués. Pour faire la distinction entre les deux, vous pouvez utiliser la méthode IsDir() fournie par le type os.DirEntry.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn