64 votes

Comment créer des chemins de fichiers multiplateformes dans Go ?

Je veux ouvrir un fichier donné "directory/subdirectory/file.txt" en golang. Quelle est la manière recommandée d'exprimer un tel chemin d'une manière indépendante du système d'exploitation (c'est-à-dire des barres obliques inverses sous Windows, des barres obliques inverses sous Mac et Linux) ? Quelque chose comme le module os.path

28voto

Evan Shaw Points 7957

Utilisez path/filepath au lieu de path . path est destiné uniquement aux chemins séparés par des barres obliques (comme ceux utilisés dans les URL), tandis que path/filepath manipule les chemins entre différents systèmes d'exploitation.

18voto

utrecht Points 456

Sur la base de la réponse de @EvanShaw et de ce blog, le code suivant a été créé :

 package main

import (
    "fmt"
    "os"
    "path/filepath"
)

func main() {
    p := filepath.FromSlash("path/to/file")
    fmt.Println("Path: " + p)
}

Retour:

 Path: path\to\file

sur Windows.

-1voto

Jjed Points 1024

Go traite les barres obliques ( / ) comme le séparateur universel sur toutes les plateformes [1] . "directory/subdirectory/file.txt" s'ouvrira correctement quel que soit le système d'exploitation d'exécution.

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