Maison > développement back-end > Golang > le corps du texte

Existe-t-il une fonction qui renvoie un chemin absolu à partir d'un chemin relatif à un autre ?

PHPz
Libérer: 2024-02-05 23:15:08
avant
1173 Les gens l'ont consulté

Existe-t-il une fonction qui renvoie un chemin absolu à partir dun chemin relatif à un autre ?

Contenu de la question

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
Copier après la connexion

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.


Bonne réponse


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
}
Copier après la connexion

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
Copier après la connexion

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!

Étiquettes associées:
source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!