当前位置: 首页 > 面试题库 >

如何在golang中解析相对路径到绝对路径?

祁嘉木
2023-03-14
问题内容

节点中是否有类似“ path.resolve”的API?还是有什么可以做的?

例如(nodejs代码): path.resolve("~/sample.sh") 应该得到:/home/currentuser/sample.sh


问题答案:

解决~(表示用户的家)是另一回事,通常是由外壳来解决。。

如果要通过Go代码执行此操作,则可以使用该user.Current()函数获取有关当前用户的详细信息,包括其主文件夹(即)User.HomeDir。但是,您仍然必须自己替换它。

原始答案如下。

您可以使用path.Join()filepath.Join()

例如:

base := "/home/bob"
fmt.Println(path.Join(base, "work/go", "src/github.com"))

输出:

/home/bob/work/go/src/github.com

您可以使用path.Clean()和从路径中filepath.Clean()“删除”点.和双点..

您可以filepath.Abs()用来解析相对路径并获取绝对路径(如果不是绝对路径,则在工作目录之前)。filepath.Abs()也要求Clean()结果。

例如:

fmt.Println(filepath.Abs("/home/bob/../alice"))

输出:

/home/alice <nil>

在Go Playground上尝试示例。



 类似资料:
  • 问题内容: 如果使用绝对路径,则无法将整个目录移动到新位置。如果使用相对路径,则无法将单个文件移动到新位置。 这里有什么解决方案?您是否设置了一个包含根路径并从那里开始的配置文件?还是您有类似的规则:永不移动文件? 我在某些项目中看到人们使用dirname( FILE )。我的意思是,为什么不简单地将其删除,因为目录名还是相对的(取决于文件所在的位置)? 问题答案: 您应该使用一个配置文件,该配置

  • 主要内容:什么是当前工作目录,什么是绝对路径与相对路径,Python处理绝对路径和相对路径在介绍绝对路径和相对路径之前,先要了解一下什么是当前工作目录。 什么是当前工作目录 每个运行在计算机上的程序,都有一个“当前工作目录”(或 cwd)。所有没有从根文件夹开始的文件名或路径,都假定在当前工作目录下。 注意,虽然文件夹是目录的更新的名称,但当前工作目录(或当前目录)是标准术语,没有当前工作文件夹这种说法。 在 Python 中,利用 os.getcwd() 函数可以取得当前工作路径的字

  • 在 Linux 中,简单的理解一个文件的路径,指的就是该文件存放的位置,例如,在《 Linux文件系统的层次结构》中提到的 /home/cat 就表示的是 cat 文件所存放的位置。只要我们告诉 Linux 系统某个文件存放的准确位置,那么它就可以找到这个文件。 指明一个文件存放的位置,有 2 种方法,分别是使用 绝对路径和 相对路径。 我们知道,Linux 系统中所有的文件(目录)都被组织成以根

  • 问题内容: 我有文件A的绝对路径。 我有一个从文件A的目录到文件B的相对路径。此路径可以并且将使用“ ..”以任意复杂的方式向上移动目录结构。 范例A: 示例B: 我如何结合这两者以获得 最简单的 绝对路径到文件B? 问题答案: 如果我的问题正确,那么您可以执行以下操作:

  • 问题内容: 我正在编写一个程序,其中的一个组件必须能够采用给定的路径(例如或)和基于该位置的相对路径(例如或或)并产生绝对路径由相对路径暗示。考虑以下目录树。 该文件包含一个链接,如。该计划获得通过或,并将其与结合来获得。 同样,文件具有链接,程序需要从该链接返回。有合理的方法做到这一点吗? 谢谢。:) 编辑: 谢谢斯蒂芬·温伯格!对于未来的每个人,这是我使用的代码。 问题答案: 在与使用时应该做

  • 我有以下问题。当我想在我的Gradle依赖项中使用一个本地jar时。 如果我只是补充一句: 不管用. C:\users\kai\androidStudioProjects\projecta\app\src\main\Java\de\xyz\xxx\projecta\baseActivity.Java:21:错误:包com.pushlink.android不存在导入com.pushlink.andr