当前位置:  开发笔记 > 编程语言 > 正文

golang将文件保存到桌面

如何解决《golang将文件保存到桌面》经验,为你挑选了1个好方法。

我正在尝试将文件保存到我的桌面,但每当我运行我的脚本时,它会将文件保存在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 内创建了一个目录,在桌面内创建了d.dir,并在那里创建了所有文件.我再次想要运行脚本无论我在哪里运行它我想要d.dir文件夹及其内容所以在桌面上创建.



1> vodolaz095..:

您可以使用此功能找到当前用户配置文件 - https://godoc.org/os/user#Current

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

这样的事情

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

另外值得注意的是,有一个github.com/mitchellh/go-homedir 库,is a Go library for detecting the user's home directory without the use of cgo, so the library can be used in cross-compilation environments. 所以使用它可以更好地使您的程序更便携.

推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有