Des lecteurs comme vous aident à soutenir MUO. Lorsque vous effectuez un achat en utilisant des liens sur notre site, nous pouvons gagner une commission d'affiliation. En savoir plus.

Travailler avec des fichiers et des répertoires est une tâche essentielle pour les applications qui doivent stocker et récupérer des données. Go fournit le package filepath pour les opérations de chemin de fichier indépendantes de la plate-forme. Le package comprend des fonctions pour manipuler les chemins de fichiers et il est compatible avec Windows, Linux et macOS.

Les fonctions incluses dans filepath peuvent joindre, diviser et nettoyer les chemins de fichiers pour s'assurer qu'ils sont valides. Le package a également des fonctions pour parcourir les répertoires et rechercher des fichiers.

Arbres du répertoire ambulant

Le Marcher fonction de la chemin du fichier Le package fournit des fonctionnalités pour parcourir une arborescence de répertoires et parcourir des fichiers et des répertoires de manière pré-commandée. Il visitera de manière récursive tous les répertoires sous la racine donnée. La fonction Walk prend un répertoire racine et une fonction qui prend le chemin, l'instance d'informations sur le fichier et une instance d'erreur.

instagram viewer

emballer principal

importer (
"fmt"
"chemin/chemin de fichier"
"os"
)

fonctionprincipal() {
// Définit le répertoire racine pour démarrer la marche
racine := "."

// Utilise la fonction Walk pour parcourir l'arborescence des répertoires
erreur := chemin du fichier. Marche (racine, fonction(chemin chaîne, info os. FileInfo, erreur erreur)erreur {
si erreur != néant {
retour se tromper
}

// Affiche le nom de chaque fichier ou répertoire
fmt. Println (chemin)
retournéant
})

// Vérifie les erreurs
si erreur != néant {
fmt. Imprimerf("Erreur de parcourir l'arborescence des répertoires: %v\n", euh)
}
}

Ce programme définit le répertoire racine comme répertoire de travail courant. Le principal La fonction parcourt les répertoires du répertoire racine et imprime les noms des fichiers.

Correspondance de fichiers avec la correspondance de modèle

Vous pouvez utiliser le Correspondre fonction pour faire correspondre les noms de fichiers avec un modèle. La syntaxe de modèle est basée sur le commun syntaxe générique de fichier, qui utilise des métacaractères, connus sous le nom de modèles glob dans les environnements Unix.

emballer principal

importer (
"fmt"
"chemin/chemin de fichier"
)

fonctionprincipal() {
// Définit le modèle à faire correspondre
motif := "*.SMS"

// Utilise la fonction Match pour faire correspondre le modèle sur les fichiers
match, err := chemin du fichier. Correspondance (motif, "fichier.txt")

si erreur != néant {
fmt. Imprimerf("Erreur de correspondance du modèle: %v\n", euh)
retour
}

// Imprime le résultat du match
si correspondre {
fmt. Imprimerln("Le fichier correspond au modèle.")
} autre {
fmt. Imprimerln("Le fichier ne correspond pas au modèle.")
}
}

Le principal la fonction fait correspondre un nom de fichier avec le *.SMS modèle et imprime une chaîne en fonction du résultat de l'énoncé conditionnel.

Nettoyage des chemins avec la fonction Clean

Le Faire le ménage La fonction prend un chemin de fichier et renvoie une version nettoyée d'un chemin en supprimant les séparateurs inutiles et les changements de répertoire, tels que . (répertoire courant) et .. (répertoire parent) segments.

Le nettoyage des chemins de fichiers est utile car il permet d'éviter les erreurs si un chemin contient des séparateurs redondants ou des segments non valides, ou construit des chemins indépendants du répertoire de travail actuel.

emballer principal

importer (
"fmt"
"chemin/chemin de fichier"
)

fonctionprincipal() {
// Crée un chemin avec des séparateurs redondants et des segments invalides
chemin := "/toto/bar//baz/.././qux/"

// Nettoie le chemin
cleanPath := chemin du fichier. Nettoyer (chemin)

// Imprime les chemins de fichiers d'origine et nettoyés
fmt. Imprimerln("Chemin d'origine :", chemin)
fmt. Imprimerln("Chemin nettoyé :", cleanPath)
}

Le chemin variable est le chemin d'accès initial au fichier, et la Faire le ménage la fonction nettoie chemin variable et renvoie le chemin du fichier nettoyé. Le principal fonction imprime les chemins de fichier initial et propre.

Joindre et diviser des chemins de fichiers dans Go

Le Rejoindre et Diviser Les fonctions fournissent des fonctionnalités pour joindre et diviser les chemins de fichiers.

La fonction Join accepte un nombre quelconque d'éléments de chemin. Il renvoie une seule chaîne de chemin de fichier résultant de la concaténation de ces éléments à l'aide du séparateur de chemin approprié pour le système d'exploitation. Le Rejoindre est utile pour construire des chemins de fichiers indépendants du système de fichiers sous-jacent.

emballer principal

importer (
"fmt"
"chemin/chemin de fichier"
)

fonctionprincipal() {
// Définit quatre chemins de fichier pour l'opération de jointure
chemin1 := "dossier1"
chemin2 := "dossier2"
chemin3 := "sous-dossier1"
chemin4 := "exemple.txt"

// Joint les quatre chemins de fichiers en un seul chemin
joinPath := chemin du fichier. Joindre (chemin1, chemin2, chemin3, chemin4)

// Affiche le chemin du fichier unifié
fmt. Imprimerln("Chemin joint :", JoinPath)
}

Le chemin1, chemin2, et chemin3 les variables sont des noms de dossier et les chemin4 variable est un nom de fichier. Le Rejoindre La fonction prend les noms des variables de chemin et renvoie le chemin du fichier concaténé. Le principal fonction imprime le chemin du fichier concaténé vers la console avec le fmt emballer.

Le Diviser La fonction prend une chaîne de chemin et renvoie les composants de répertoire et de nom de fichier du chemin. Le Diviser La fonction est utile pour extraire les noms de fichiers ou déterminer le répertoire parent d'un fichier.

emballer principal

importer (
"fmt"
"chemin/chemin de fichier"
)

fonctionprincipal() {
// Définit le chemin du fichier pour l'opération de fractionnement
chemin_fichier := "/home/utilisateur/documents/exemple.txt"

// Utilisez la fonction Split pour diviser le chemin du fichier
// dans son répertoire et ses composants de fichier
répertoire, fichier := chemin du fichier. Fractionner (cheminFichier)

// Affiche les composants du répertoire et du fichier
fmt. Imprimerln("Annuaire:", réal)
fmt. Imprimerln("Déposer:", déposer)
}

Le chemin du fichier variable est le chemin du fichier d'origine, et la Diviser la fonction prend en compte chemin du fichier variable et renvoie les noms de répertoire et de fichier sous forme de chaînes. Le principal La fonction imprime les noms de répertoire et de fichier sur la console.

Vous pouvez manipuler des fichiers texte avec Go

Outre les fonctionnalités du système de fichiers, Go fournit des packages pour vous aider à travailler avec plusieurs types de fichiers, y compris les fichiers texte.

Vous pouvez utiliser le bufio package pour mettre en mémoire tampon les opérations d'entrée et de sortie sur les fichiers texte et le os package pour créer des fichiers, entre autres opérations.