OpenReader
发布者:admin 发表于:435天前 阅读数:542 评论:0

本文整理汇总了Golang中archive/zip.OpenReader函数的典型用法代码### 示例。如果您正苦于以下问题:Golang OpenReader函数的具体用法?Golang OpenReader怎么用?Golang OpenReader使用的例子?那么恭喜您, 这里精选的函数代码### 示例或许可以为您提供帮助。

在下文中一共展示了OpenReader函数的20个代码### 示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码### 示例。

示例1: main

func main() {
    var output string
    flag.StringVar(&output, "file", "", "Output result to this file")
    flag.Parse()

    if flag.NArg() < 2 {
        webui()
        os.Exit(1)
    } else {
        zip1, err := zip.OpenReader(flag.Arg(0))
        if err != nil {
            log.Fatal(err)
        }
        zip2, err := zip.OpenReader(flag.Arg(1))
        if err != nil {
            log.Fatal(err)
        }
        defer zip1.Close()
        defer zip2.Close()
        result := ZipDiffContent(&zip1.Reader, &zip2.Reader, false, "")
        if output != "" {
            f, err := os.Create(output)
            if err != nil {
                log.Fatal(err)
            }
            defer f.Close()
            DisplayAsText(f, result)
        } else {
            DisplayAsText(os.Stdout, result)
        }
    }
}

开发者ID:anykao,项目名称:p,代码行数:32,代码来源:diffjar.go

示例2: writeData

// Write data to store
func writeData(fn string, nodeID int) (dbTrain, dbTest string) {

    gob.Register(Obs{})

    // Open a zip archive for reading.
    r, err := zip.OpenReader(fn)
    if err != nil {
        glog.Fatalf("can't open zip file %s - error: %s", fn, err)
    }
    defer r.Close()

    // Iterate through the files in the archive,
    for _, f := range r.File {
        fn := path.Base(f.Name)
        if fn == TrainFile {
            glog.Infof("Found %s\n", f.Name)
            dbTrain = writeStore(f, nodeID)
        }
        if fn == TestFile {
            glog.Infof("Found %s\n", f.Name)
            dbTest = writeStore(f, nodeID)
        }
    }
    return
}

开发者ID:theseusyang,项目名称:occult,代码行数:26,代码来源:data.go

示例3: unzip

func unzip(archive, target string) error {

    fmt.Println("Unzip archive ", target)

    reader, err := zip.OpenReader(archive)
    if err != nil {
        return err
    }

    for _, file := range reader.File {
        filePath := filepath.Join(target, file.Name)

        if file.FileInfo().IsDir() {
            os.MkdirAll(filePath, file.Mode())
            continue
        }
        fileReader, err := file.Open()
        if err != nil {
            return err
        }
        defer fileReader.Close()

        targetFile, err := os.OpenFile(filePath, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, file.Mode())
        if err != nil {
            return err
        }
        defer targetFile.Close()

        if _, err := io.Copy(targetFile, fileReader); err != nil {
            return err
        }
    }
    return nil
}

开发者ID:urso,项目名称:beats,代码行数:34,代码来源:import_dashboards.go

示例4: main

func main() {
    zipFileName := "test.zip"

    rc, err := zip.OpenReader(zipFileName)
    if err != nil {
        log.Fatal(err)
    }

    zipFiles := rc.File
    for _, zipFile := range zipFiles {
        offset, _ := zipFile.DataOffset()
        log.Println("Compresszed:", zipFile.FileHeader.CompressedSize64, "Uncompressed:", zipFile.FileHeader.UncompressedSize64)
        log.Println(zipFile.FileHeader.Name, "\tDataOffset", offset)

        irc, err := zipFile.Open()
        if err != nil {
            log.Fatal(err)
        }

        if fileContent, err := ioutil.ReadAll(irc); err == nil {
            data := string(fileContent)
            fmt.Print(len(data), "\t", data)
        } else {
            log.Fatal(err)
        }
        irc.Close()
        fmt.Println("----------------------")
    }
}

开发者ID:ericcapricorn,项目名称:GoStandardLibrary-Chinese,代码行数:29,代码来源:example_archive_zip_read_zip_file.go

示例5: TestRandomBrokenParts

func (f *Fuzzy) TestRandomBrokenParts(c *C) {
    if testing.Short() {
        c.Log("This test, tests many versions of an xlsx file and might take a while, it is being skipped")
        c.SucceedNow()
    }
    log.Println("Fuzzy test is using this -test.seed=" + strconv.FormatInt(*randseed, 10))
    rand.Seed(*randseed)
    template, err := zip.OpenReader("./testdocs/testfile.xlsx")
    c.Assert(err, IsNil)
    defer template.Close()

    count := 0

    for brokenFile := range generateBrokenFiles(&template.Reader) {
        count++
        if testing.Verbose() {
            //If the library panics fatally it would be nice to know why
            log.Println("Testing change to ", brokenFile.Name, " on token ", tokenToString(brokenFile.Old), " of type ", reflect.TypeOf(brokenFile.Old), " to ", tokenToString(brokenFile.New))
        }

        if e := Raises(func() { ReadZipReader(brokenFile.File) }); e != nil {

            c.Log("Some file with random changes did raise an exception instead of returning an error", e)
            c.Log("Testing change to ", brokenFile.Name, " on token ", tokenToString(brokenFile.Old), " of type ", reflect.TypeOf(brokenFile.Old), " to ", tokenToString(brokenFile.New))
            c.FailNow()
        }

    }
    c.Succeed()
}

开发者ID:Richardphp,项目名称:noms,代码行数:30,代码来源:fuzzy_test.go

示例6: ExampleReader

func ExampleReader() {
    // Open a zip archive for reading.
    r, err := zip.OpenReader(`c:\xx.zip`)
    if err != nil {
        log.Fatal(err)
    }
    defer r.Close()

    // Iterate through the files in the archive,
    // printing some of their contents.
    for _, f := range r.File {
        fmt.Printf("Contents of %s:\n", f.Name)
        rc, err := f.Open()
        if err != nil {
            fmt.Println("\nopen err:", err)
        }
        _, err = io.CopyN(os.Stdout, rc, 68)
        if err != nil {
            fmt.Println("\ncopy err:", err)
        }
        rc.Close()
        fmt.Println()
    }
    // Output:
    // Contents of README:
    // This is the source code repository for the Go programming language.
}

开发者ID:enderlu,项目名称:vfp,代码行数:27,代码来源:zip1.go

示例7: UnZip

func UnZip(zipFile string) (dirName string, err error) {
    r, err := zip.OpenReader(zipFile)
    if err != nil {
        return
    }

    for _, k := range r.Reader.File {
        if k.FileInfo().IsDir() {
            name := filepath.Join(TMPDIR, k.Name)
            err := os.MkdirAll(name, 0664)
            if err != nil {
                return "", err
            }
            dirName = k.Name
            continue
        }
        r, err := k.Open()
        if err != nil {
            return "", err
        }
        defer r.Close()
        NewFile, err := os.OpenFile(filepath.Join(TMPDIR, k.Name), os.O_TRUNC|os.O_RDWR|os.O_CREATE, 0664)
        if err != nil {
            return "", err
        }
        io.Copy(NewFile, r)
        NewFile.Close()
    }
    return
}

开发者ID:0x9e3779b9,项目名称:golang_lab,代码行数:30,代码来源:main.go

示例8: parseIPA

func parseIPA(path string) (plinfo *plistBundle, err error) {
    plistre := regexp.MustCompile(`^Payload/[^/]*/Info\.plist$`)
    r, err := zip.OpenReader(path)
    if err != nil {
        return
    }
    defer r.Close()

    var plfile *zip.File
    for _, file := range r.File {
        if plistre.MatchString(file.Name) {
            plfile = file
            break
        }
    }
    if plfile == nil {
        err = errors.New("Info.plist file not found")
        return
    }
    plreader, err := plfile.Open()
    if err != nil {
        return
    }
    defer plreader.Close()
    buf := make([]byte, plfile.FileInfo().Size())
    _, err = io.ReadFull(plreader, buf)
    if err != nil {
        return
    }
    dec := goplist.NewDecoder(bytes.NewReader(buf))
    plinfo = new(plistBundle)
    err = dec.Decode(plinfo)
    return
}

开发者ID:RainYang0925,项目名称:gohttpserver,代码行数:34,代码来源:ipa.go

示例9: apiResources

func apiResources() ([]byte, error) {
    p, err := apiJarPath()
    if err != nil {
        return nil, err
    }
    zr, err := zip.OpenReader(p)
    if err != nil {
        return nil, err
    }
    defer zr.Close()

    buf := new(bytes.Buffer)
    for _, f := range zr.File {
        if f.Name == "resources.arsc" {
            rc, err := f.Open()
            if err != nil {
                return nil, err
            }
            _, err = io.Copy(buf, rc)
            if err != nil {
                return nil, err
            }
            rc.Close()
            break
        }
    }
    if buf.Len() == 0 {
        return nil, fmt.Errorf("failed to read resources.arsc")
    }
    return buf.Bytes(), nil
}

开发者ID:leonardyp,项目名称:mobile,代码行数:31,代码来源:sdk.go

示例10: loadAsset

func loadAsset(activity unsafe.Pointer, filename string) (io.Reader, error) {
    apkPath := C.GoString(C.getPackageName((*C.ANativeActivity)(activity)))

    // Open a zip archive for reading.
    r, err := zip.OpenReader(apkPath)
    if err != nil {
        return nil, err
    }
    defer r.Close()

    // Iterate through the files in the archive.
    for _, f := range r.File {
        if f.Name == filename {
            rc, err := f.Open()
            if err != nil {
                return nil, err
            }
            buffer := make([]byte, f.UncompressedSize64)
            _, err = io.ReadFull(rc, buffer)
            if err != nil {
                return nil, err
            }
            rc.Close()
            return bytes.NewBuffer(buffer), nil
        }
    }
    return nil, fmt.Errorf("Resource not found!")
}

开发者ID:kebo,项目名称:gorgasm,代码行数:28,代码来源:asset_android.go

示例11: ReadAPK

// ReadAPK opens the specified APK file 'apk' and walks the contents
// of any DEX files it contains, making callbacks at various points
// through a user-supplied visitor object 'visitor'. See DexApkVisitor
// for more info on which DEX/APK parts are visited.
func ReadAPK(apk string, visitor DexApkVisitor) error {
    rc, err := zip.OpenReader(apk)
    if err != nil {
        return errors.New(fmt.Sprintf("unable to open APK %s: %v", apk, err))
    }
    defer rc.Close()
    z := &rc.Reader

    visitor.VisitAPK(apk)
    visitor.Verbose(1, "APK %s contains %d entries", apk, len(z.File))

    isDex := regexp.MustCompile(`^\S+\.dex$`)
    for i := 0; i < len(z.File); i++ {
        entryName := z.File[i].Name
        if isDex.MatchString(entryName) {
            visitor.Verbose(1, "dex file %s at entry %d", entryName, i)
            reader, err := z.File[i].Open()
            if err != nil {
                return errors.New(fmt.Sprintf("opening apk %s dex %s: %v", apk, entryName, err))
            }
            func() {
                dexread.ReadDEX(&apk, entryName, reader,
                    z.File[i].UncompressedSize64, visitor)
                defer reader.Close()
            }()
        }
    }
    return nil
}

开发者ID:thanm,项目名称:go-read-a-dex,代码行数:33,代码来源:apkread.go

示例12: zipStaticServe

func zipStaticServe(fn string, lastTs time.Time) (*zipHandler, error) {
    zr, err := zip.OpenReader(fn)
    if err != nil {
        return nil, err
    }
    defer zr.Close()

    zf := &zipHandler{
        ts:   lastTs,
        data: map[string][]byte{},
    }

    for _, f := range zr.File {
        rc, err := f.Open()
        if err != nil {
            return nil, err
        }

        d, err := ioutil.ReadAll(rc)
        if err != nil {
            return nil, err
        }
        rc.Close()

        zf.data[f.Name] = d
    }

    return zf, nil
}

开发者ID:steveyen,项目名称:cbgb,代码行数:29,代码来源:zipstatic.go

示例13: Open

// Open an Open Document File, uncompress its ZIP archive,
// and check its mime type. The returned *File provides --
// via its Open method -- access to files containted in the
// ZIP file, like content.xml.
func Open(odfName string) (f *File, err error) {
    of := new(File)
    of.ReadCloser, err = zip.OpenReader(odfName)
    if err != nil {
        return
    }
    mf, err := of.Open("mimetype")
    if err != nil {
        of.Close()
        return
    }
    defer mf.Close()

    b, err := ioutil.ReadAll(mf)
    if err != nil {
        return
    }
    of.MimeType = string(b)

    if !strings.HasPrefix(of.MimeType, MimeTypePfx) {
        err = errors.New("not an Open Document mime type")
    } else {
        f = of
    }

    return
}

开发者ID:knieriem,项目名称:odf,代码行数:31,代码来源:read.go

示例14: main

func main() {
    reader, err := zip.OpenReader("output/sample.zip")
    if err != nil {
        log.Fatalln(err)
    }
    defer reader.Close()

    var rc io.ReadCloser
    for _, f := range reader.File {
        rc, err = f.Open()
        if err != nil {
            log.Fatal(err)
        }

        buf := new(bytes.Buffer)
        _, err = io.Copy(buf, rc)
        if err != nil {
            log.Fatal(err)
        }
        if err = ioutil.WriteFile("output/"+f.Name, buf.Bytes(), 0755); err != nil {
            log.Fatal(err)
        }
        rc.Close()
    }
}

开发者ID:qt-luigi,项目名称:golangcafe,代码行数:25,代码来源:readzip.go

示例15: UnzipFile

func UnzipFile(src, dest, fileName string) error {
    zipReader, err := zip.OpenReader(src)
    if err != nil {
        return err
    }
    defer func() error {
        if err := zipReader.Close(); err != nil {
            return fmt.Errorf("Error unzipping: (%s) %v", src, err)
        }

        return nil
    }()

    for _, zf := range zipReader.File {
        if zf.Name != fileName {
            continue
        }

        dst, err := os.Create(dest)
        if err != nil {
            return err
        }

        defer dst.Close()
        src, err := zf.Open()
        if err != nil {
            // err
        }
        defer src.Close()

        io.Copy(dst, src)
    }

    return nil
}

开发者ID:infoassure,项目名称:nsrls,代码行数:35,代码来源:file.go

示例16: ExtractZipFile

func ExtractZipFile(src string, dest string) error {
    if !strings.HasSuffix(dest, pathutil.SLASH) {
        dest += pathutil.SLASH
    }
    rc, err := zip.OpenReader(src)
    if err != nil {
        return err
    }
    defer rc.Close()

    for _, zf := range rc.Reader.File {
        name := zf.Name
        mode := zf.Mode()
        if mode.IsDir() {
            os.MkdirAll(dest+name, zf.Mode())
        } else {
            parent_path := pathutil.ParentPath(dest + name)
            os.MkdirAll(parent_path, pathutil.DEFAULT_DIR_ACCESS)
            if err := unpackZippedFile(dest, name, zf); err != nil {
                return err
            }
            os.Chmod(dest+name, mode)
        }
    }

    return nil
}

开发者ID:jsli,项目名称:gtbox,代码行数:27,代码来源:zip.go

示例17: parseIpaIcon

func parseIpaIcon(path string) (data []byte, err error) {
    iconPattern := regexp.MustCompile(`(?i)^Payload/[^/]*/icon\.png$`)
    r, err := zip.OpenReader(path)
    if err != nil {
        return
    }
    defer r.Close()

    var zfile *zip.File
    for _, file := range r.File {
        if iconPattern.MatchString(file.Name) {
            zfile = file
            break
        }
    }
    if zfile == nil {
        err = errors.New("icon.png file not found")
        return
    }
    plreader, err := zfile.Open()
    if err != nil {
        return
    }
    defer plreader.Close()
    return ioutil.ReadAll(plreader)
}

开发者ID:RainYang0925,项目名称:gohttpserver,代码行数:26,代码来源:ipa.go

示例18: unzip

func unzip(src string, dest string) error {
    zipReader, err := zip.OpenReader(src)
    if err != nil {
        return err
    }
    defer zipReader.Close()

    os.MkdirAll(dest, 0755)
    for _, file := range zipReader.File {
        reader, err := file.Open()
        if err != nil {
            return err
        }
        defer reader.Close()

        path := filepath.Join(dest, file.Name)
        if file.FileInfo().IsDir() {
            os.MkdirAll(path, file.Mode())
        } else {
            file, err := os.OpenFile(path, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, file.Mode())
            if err != nil {
                return err
            }

            _, err = io.Copy(file, reader)
            if err != nil {
                return err
            }
            file.Close()
        }
    }

    return nil
}

开发者ID:rootwzrd,项目名称:appstax-cli,代码行数:34,代码来源:download.go

示例19: Unzip

//export Unzip
func Unzip(zipname *C.char) int32 {
    r, err := zip.OpenReader(C.GoString(zipname))
    if err != nil {
        log.Println(err)
        return -1
    }
    defer r.Close()

    // Iterate through the files in the archive,
    for _, file := range r.File {
        ri, err := file.Open()
        if err != nil {
            log.Println(err)
            return -1
        }
        defer ri.Close()

        wi, err := os.Create(file.Name)
        if err != nil {
            log.Println(err)
            return -1
        }
        defer wi.Close()

        _, err = io.Copy(wi, ri)
        if err != nil {
            log.Println(err)
            return -1
        }
    }

    return 0
}

开发者ID:kuba–,项目名称:c-go-zip,代码行数:34,代码来源:zip.go

示例20: Unzip

func Unzip(src string) string {
    var fileName string
    r, err := zip.OpenReader(src)
    if err != nil {
        panic(err)
    }
    defer r.Close()

    for _, f := range r.File {
        if f.Name == "ngrok" {
            fileName = f.Name
            rc, err := f.Open()
            if err != nil {
                panic(err)
            }
            defer rc.Close()

            f, err := os.OpenFile(
                f.Name, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, f.Mode())
            if err != nil {
                panic(err)
            }
            defer f.Close()

            _, err = io.Copy(f, rc)
            if err != nil {
                panic(err)
            }
        }
    }

    return fileName
}

开发者ID:mehmetg,项目名称:prerunserver,代码行数:33,代码来源:Utilities.go