Maison >développement back-end >Golang >Existe-t-il une fonction qui renvoie un chemin absolu à partir d'un chemin relatif à un autre ?
Je dois être capable de déterminer où se trouve un fichier en fonction des chemins utilisés dans différents fichiers. Il serait peut-être préférable d'utiliser un exemple :
Voici la structure du répertoire :
/ foo bar.txt text.txt bar main.go
Dans le fichier text.txt, bar.txt est ./bar.txt
引用,它可以工作,但是如果我尝试使用filepath.abs("从main.go找到<code>./bar.txt
的绝对路径./bar.txt") 那么它将返回 /bar/bar.txt
car il suppose qu'il s'agit du répertoire de travail actuel.
D'après la documentation : abs renvoie la représentation absolue du chemin. Si le chemin n'est pas absolu, il sera concaténé avec le répertoire de travail actuel pour le convertir en chemin absolu.
Ma question est de savoir comment obtenir le chemin absolu de ./bar.txt
alors qu'il s'agit de ./bar.txt./bar.txt
. Lié à text.txt.
Désolé, cette question est peut-être trop complexe, mais je ne peux pas penser à une meilleure façon de montrer un exemple.
Cette réponse est presque là mais j'ai réussi à la modifier à ma convenance.
func getabs(path string, locationpath string) string { new_file_path := path new_abs_path := path if filepath.isabs(new_file_path) { new_abs_path = new_file_path } else { new_abs_path, _ = filepath.abs(filepath.join(locationpath, path)) fmt.println(new_abs_path, locationpath) } return new_abs_path }
Ajoutez simplement le chemin du fichier dans le répertoire où se trouve le fichier qui le référence.
Par exemple :
fmt.Println(getAbs("./bar.txt", "/foo")) //foo is the directory that text.txt is in which references bar.txt is in
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!