下面是一个示例代码,可以下载 URL 文件到本地,并检查文件大小是否为0:
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func downloadFile(url string, filepath string) error {
resp, err := http.Get(url)
if err != nil {
return err
}
defer resp.Body.Close()
if resp.ContentLength == 0 {
fmt.Println("File size is 0, ignoring...")
return nil
}
out, err := os.Create(filepath)
if err != nil {
return err
}
defer out.Close()
_, err = io.Copy(out, resp.Body)
if err != nil {
return err
}
fmt.Println("Downloaded file:", filepath)
return nil
}
func main() {
url := "http://example.com/sample.txt"
filepath := "sample.txt"
err := downloadFile(url, filepath)
if err != nil {
fmt.Println(err)
}
}
在上面的代码中,我们使用 http.Get()
方法从给定的 URL 获取文件内容。然后,我们检查响应对象的 ContentLength
属性,如果它为0,则忽略该文件并返回。否则,我们创建一个本地文件,将获取到的内容复制到本地文件中,并输出下载完成的消息。注意,最后我们需要关闭打开的文件句柄。