我需要能够根据不同文件中使用的路径找出文件的位置。使用以下示例可能更好:
以下是目录结构:
/
foo
bar.txt
text.txt
bar
main.go
在text.txt文件中,bar.txt是用./bar.txt
引用的,这是有效的,但是如果我尝试从main.go用filepath.Abs("./bar.txt")
查找./bar.txt
的绝对路径,那么它将返回/bar/bar.txt
,因为它假定.是当前工作目录。
来自文档:返回路径的绝对表示形式。如果路径不是绝对的,则将其与当前工作目录连接以将其转换为绝对路径。
我的问题是,当.相对于text.txt时,如何获得./bar.txt
的绝对路径。
抱歉,这个问题可能过于复杂,但我想不出一个更好的方式来展示一个例子。
2条答案
按热度按时间0dxa2lsx1#
我不知道确切的路径,也许有一个更简单的方法可以用go stdlib来找到绝对路径,你可以用下面的代码来解决这个问题。
它从第一个文件(text.txt)中获取内容,然后检查路径是否已经是绝对路径,如果是绝对路径,则不执行任何操作,但如果不是绝对路径,则根据text.txt文件查找绝对路径。
kzmpq1sx2#
This答案几乎是存在的,但我设法修改它为我工作。
这只需将文件的路径添加到引用该文件的文件所在的目录即可。
例如: