Ich muss anhand der in verschiedenen Dateien verwendeten Pfade bestimmen können, wo sich eine Datei befindet. Vielleicht ist es besser, ein Beispiel zu verwenden:
Das ist die Verzeichnisstruktur:
/ foo bar.txt text.txt bar main.go
In der Datei text.txt ist bar.txt ./bar.txt
引用,它可以工作,但是如果我尝试使用filepath.abs("从main.go找到<code>./bar.txt
的绝对路径./bar.txt") 那么它将返回 /bar/bar.txt
, da davon ausgegangen wird, dass es sich um das aktuelle Arbeitsverzeichnis handelt.
Aus der Dokumentation: abs gibt die absolute Darstellung des Pfades zurück. Wenn der Pfad nicht absolut ist, wird er mit dem aktuellen Arbeitsverzeichnis verkettet, um ihn in einen absoluten Pfad umzuwandeln.
Meine Frage ist, wie ich den absoluten Pfad von ./bar.txt
erhalte, wenn es ./bar.txt./bar.txt
ist. Bezieht sich auf text.txt.
Tut mir leid, diese Frage ist vielleicht zu komplex, aber ich kann mir keinen besseren Weg vorstellen, ein Beispiel zu zeigen.
Diese Antwort ist fast fertig, aber ich habe es geschafft, sie an meine Bedürfnisse anzupassen.
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 }
Fügen Sie einfach den Pfad zur Datei zu dem Verzeichnis hinzu, in dem sich die Datei befindet, die darauf verweist.
Zum Beispiel:
fmt.Println(getAbs("./bar.txt", "/foo")) //foo is the directory that text.txt is in which references bar.txt is in
Das obige ist der detaillierte Inhalt vonGibt es eine Funktion, die einen absoluten Pfad von einem Pfad relativ zu einem anderen zurückgibt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!