第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

使用 golang 壓縮一個(gè)文件文件夾會(huì)創(chuàng)建一個(gè)損壞的 zip

使用 golang 壓縮一個(gè)文件文件夾會(huì)創(chuàng)建一個(gè)損壞的 zip

Go
千萬(wàn)里不及你 2023-04-04 17:22:38
如何正確地將文件壓縮到包含子目錄的文件夾中。我有一個(gè)具有以下結(jié)構(gòu)的本地文件夾:folder/hello/folder/hello/world/folder/hello/world/helloword.txtfolder/index.txt這是我的代碼:package mainimport (    "archive/zip"    "fmt"    "io"    "os"    "path/filepath")func main() {    files, err := listFiles("./folder")    if err != nil {        panic(err)    }    zipMe(files, "test.zip")    for _, f := range files {        fmt.Println(f)    }    fmt.Println("Done!")}func listFiles(root string) ([]string, error) {    var files []string    err := filepath.Walk(root, func(path string, info os.FileInfo, err error) error {        files = append(files, path)        return nil    })    if err != nil {        return nil, err    }    return files, nil}func zipMe(filepaths []string, target string) error {    flags := os.O_WRONLY | os.O_CREATE | os.O_TRUNC    file, err := os.OpenFile(target, flags, 0644)    if err != nil {        return fmt.Errorf("Failed to open zip for writing: %s", err)    }    defer file.Close()    zipw := zip.NewWriter(file)    defer zipw.Close()    for _, filename := range filepaths {        if err := addFileToZip(filename, zipw); err != nil {            return fmt.Errorf("Failed to add file %s to zip: %s", filename, err)        }    }    return nil}func addFileToZip(filename string, zipw *zip.Writer) error {    file, err := os.Open(filename)    if err != nil {        return fmt.Errorf("Error opening file %s: %s", filename, err)    }    defer file.Close()    wr, err := zipw.Create(filename)    if err != nil {        return fmt.Errorf("Error adding file; '%s' to zip : %s", filename, err)    }    if _, err := io.Copy(wr, file); err != nil {        return fmt.Errorf("Error writing %s to zip: %s", filename, err)    }    return nil}這會(huì)創(chuàng)建一個(gè)無(wú)法提取的損壞的 zip(我在 mac os 上運(yùn)行,但這應(yīng)該沒(méi)有什么區(qū)別)。我還嘗試了來(lái)自 stackoverflow 的其他幾個(gè)示例和通過(guò) google 找到的鏈接,但我總是得到一個(gè)損壞的 zip。當(dāng)我提取它時(shí),我得到一個(gè) 135 字節(jié)的 zip,我得到 1 個(gè) 0 字節(jié)的二進(jìn)制文件)。如果有人可以幫助我找出我在這里缺少的東西,那就太好了。
查看完整描述

1 回答

?
蕭十郎

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超13個(gè)贊

您需要列出并壓縮文件,而不是目錄。只需進(jìn)行此調(diào)整即可忽略listFiles函數(shù)中的目錄。

if !info.IsDir() {
    files = append(files, path)
}


查看完整回答
反對(duì) 回復(fù) 2023-04-04
  • 1 回答
  • 0 關(guān)注
  • 277 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)