diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..960642c --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +*.zip +*~ +readzip diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..00634cf --- /dev/null +++ b/go.mod @@ -0,0 +1,3 @@ +module readzip + +go 1.21.6 diff --git a/main.go b/main.go new file mode 100644 index 0000000..3ad7ff0 --- /dev/null +++ b/main.go @@ -0,0 +1,29 @@ +package main + +import ( + "archive/zip" + "fmt" + "os" +) + +func main() { + + rdr, err := os.Open("bigfile.zip") + if err != nil { + panic("failed to open file: " + err.Error()) + } + + finfo, err := rdr.Stat() + if err != nil { + panic("failed to read file info: " + err.Error()) + } + + zrdr, err := zip.NewReader(rdr, finfo.Size()) + if err != nil { + panic("failed to open a zip reader: " + err.Error()) + } + + for _, f := range zrdr.File { + fmt.Println(f.FileInfo()) + } +}