golang如何获取这种文件的绝对路径?

作者站长头像
站长
· 阅读数 13

go代码

package main

import "fmt"

func main() {
    fmt.Println("9527")
}

我把这个go编译为/usr/bin/demo

Apple.java

#!/usr/bin/demo
其他java代码

我直接执行Apple.java,里面的go代码会被执行的,我想go获取这个Apple.java的绝对路径。

我遍历了os.Args,如果java文件是相对路径执行的,得到的就是./Apple.java,如果是绝对路径执行的,能获取到。

回复
1个回答
avatar
test
2024-09-07
package main

import (
    "fmt"
    "os"
    "path/filepath"
)

func main() {
    // 获取当前可执行文件的路径
    execPath, err := os.Executable()
    if err != nil {
        fmt.Println("Error:", err)
        return
    }

    // 获取当前执行的脚本的路径(通过 os.Args[0])
    scriptPath := os.Args[0]

    // 将路径转换为绝对路径
    absPath, err := filepath.Abs(scriptPath)
    if err != nil {
        fmt.Println("Error:", err)
        return
    }

    // 打印绝对路径
    fmt.Println("Absolute path:", absPath)
}
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容