gpt4 book ai didi

golang 保存文件到桌面

转载 作者:IT王子 更新时间:2023-10-29 01:21:36 25 4
gpt4 key购买 nike

我正在尝试将文件保存到我的桌面,但是每当我运行我的脚本时,它都会将文件保存在 go 脚本所在的任何目录中。

这是我正在处理的代码块

func (d *downloader) downloadToFile(key string) {
// Create the directories in the path
// desktop path
desktop := "Desktop/" + d.dir
file := filepath.Join(desktop, key)
if err := os.MkdirAll(filepath.Dir(file), 0775); err != nil {
panic(err)
}

// Setup the local file
fd, err := os.Create(file)
if err != nil {
panic(err)
}
defer fd.Close()

// Download the file using the AWS SDK
fmt.Printf("Downloading s3://%s/%s to %s...\n", d.bucket, key, file)
params := &s3.GetObjectInput{Bucket: &d.bucket, Key: &key}
d.Download(fd, params)
_, e := d.Download(fd, params)
if e != nil {
panic(e)
}
}

这条路我试过了

desktop := "Desktop/" + d.dir
desktop := "/Desktop/" + d.dir
desktop := "Desktop/" + d.dir
desktop := "~/Desktop/ + d.dir

我似乎无法将文件保存到桌面,例如当我尝试时

desktop := "~/Desktop/ + d.dir

创建了目录 ~,在 ~ Desktop 中创建了,在 Desktop 中创建了 d.dir,所有文件都在里面。我想再次运行该脚本,无论我在哪里运行它,我都想将其内容保存到 d.dir 文件夹中,以便在桌面上创建。

最佳答案

您可以使用此功能查找当前用户个人资料 - https://godoc.org/os/user#Current

因此,根据您的操作系统,桌面将位于主目录的相应文件夹中。

像这样

   myself, error := user.Current()
if error != nil {
panic(error)
}
homedir := myself.HomeDir
desktop := homedir+"/Desktop/" + d.dir

还值得注意的是,有一个 github.com/mitchellh/go-homedirlibrary 是一个Go库,用于在不使用cgo的情况下检测用户的主目录,因此该库可以在交叉编译环境中使用。所以使用它可以更好地让你的程序更便携。

关于golang 保存文件到桌面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34366477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com