该进程无法访问该文件...因为它正在被另一个进程使用我无法使用此代码删除 Zip 文件..这是可能的?在一个代码中提取和删除文件。代码package mainimport ( "archive/zip" "fmt" "io" "log" "net/http" "os" "path/filepath" "strings")func main() { url := "https://230c07c8-77b2-4c0d-9b82-8c6501a5bc45.filesusr.com/archives/b7572a_9ec985e0031042ef912cb40cafbe6376.zip?dn=7.zip" out, _ := os.Create("E:\\experi\\1234567890.zip") defer out.Close() resp, _ := http.Get(url) defer resp.Body.Close() _, _ = io.Copy(out, resp.Body) files, err := Unzip("E:\\experi\\1234567890.zip", "E:\\experi\\1234567890") if err != nil { log.Fatal(err) } fmt.Println("Unzipped the following files:\n" + strings.Join(files, "\n"))}func Unzip(src string, destination string) ([]string, error) { var filenames []string r, err := zip.OpenReader(src) if err != nil { return filenames, err } defer r.Close() for _, f := range r.File { fpath := filepath.Join(destination, f.Name) if !strings.HasPrefix(fpath, filepath.Clean(destination)+string(os.PathSeparator)){ return filenames, fmt.Errorf("%s is an illegal filepath", fpath) } filenames = append(filenames, fpath) if f.FileInfo().IsDir() { os.MkdirAll(fpath, os.ModePerm) continue } if err = os.MkdirAll(filepath.Dir(fpath), os.ModePerm); err != nil { return filenames, err } outFile, err := os.OpenFile(fpath, os.O_WRONLY|os.O_CREATE|os.O_TRUNC | os.O_RDWR, f.Mode()) if err != nil { return filenames, err } rc, err := f.Open() if err != nil { return filenames, err } _, err = io.Copy(outFile, rc) outFile.Close() rc.Close() if err != nil { return filenames, err } } removeFile() return filenames, nil}还有其他方法可以做同样的事情吗?我是不是哪里出错了?帮助将不胜感激。提前致谢。:)
- 2 回答
- 0 关注
- 205 浏览
添加回答
举报
0/150
提交
取消
