2 votes

Comment obtenir le dossier racine d'un projet, deux niveaux plus haut ?

Je suis dans un dossier profond à l'intérieur d'un fichier et je veux obtenir le répertoire qui est 2 niveaux au-dessus, je vois l'API suivante mais je ne suis pas sûr de savoir comment ajouter quelque chose comme "../../" Une idée ?

  dir, err := os.Getwd()

Par exemple, j'obtiens ce qui suit

/Users/i02222333/go/src/myapp/src/test

Et j'ai besoin

/Users/i02222333/go/src/myapp

Je peux couper la chaîne avec le chemin avec quelques manipulations mais ma question est de savoir s'il existe une meilleure solution pour le faire avec golang ?

0voto

Jack Gore Points 1067

Vous pouvez obtenir le nom du répertoire de '../../' en utilisant la fonction path paquet comme ceci :

paquet principal

import (
    "fmt"
    "os"
    "path"
)

func main() {
    dirname, err := os.Getwd()
    if err != nil {
        panic(err)
    }

    fmt.Printf("Current directory: %v\n", dirname)
    dir, err := os.Open(path.Join(dirname, "../../"))
    if err != nil {
        panic(err)
    }

    fmt.Printf("Name of ../../: %v\n", dir.Name())
}

Voici un exemple de mon résultat :

$ go run main.go
Current directory: /Users/jack/go/src/stackoverflow/example/directory
Name of ../../: /Users/jack/go/src/stackoverflow

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X