Extension de Tilde au répertoire personnel
L'amélioration du code pour gérer les chemins relatifs nécessite souvent d'étendre le caractère tilde '~' au répertoire personnel réel. Pour y parvenir, nous explorerons une solution multiplateforme utilisant la bibliothèque standard de Go.
Le package path/filepath fournit des fonctions pratiques pour manipuler les chemins de fichiers, mais il lui manque des fonctionnalités pour l'expansion des tildes. Le package os/user de Go, cependant, accorde l'accès aux informations utilisateur, y compris le répertoire personnel.
En combinant ces packages, nous pouvons développer une fonction qui résout les chemins préfixés par '~' :
import ( "os/user" "path/filepath" "strings" ) func expandTilde(path string) string { if path == "~" { // Resolve "~" directly to the home directory usr, _ := user.Current() return usr.HomeDir } else if strings.HasPrefix(path, "~/") { // Expand paths starting with "~/" usr, _ := user.Current() return filepath.Join(usr.HomeDir, path[2:]) } // Otherwise, leave the path untouched return path }
Dans notre fonction expandPath, nous pouvons désormais intégrer cette fonctionnalité d'extension de tilde :
func expandPath() { if path.IsAbs(*destination) { return } cwd, err := os.Getwd() checkError(err) *destination = path.Join(cwd, expandTilde(*destination)) }
Cette solution offre une approche multiplateforme pour expansion des chemins contenant le caractère tilde '~' vers le répertoire personnel de l'utilisateur respectif.
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!