ホームページ >バックエンド開発 >Golang >ディスクに解凍せずに tar ファイルの内容を読み取ります

ディスクに解凍せずに tar ファイルの内容を読み取ります

王林
王林転載
2024-02-09 22:27:21717ブラウズ

读取 tar 文件的内容而不解压到磁盘

php editor Strawberry は今日、tar ファイルをディスクに解凍せずに内容を読み取るという非常に実用的なテクニックを紹介します。開発プロセス中、tar ファイルを処理する必要があることがよくありますが、tar ファイルをディスクに解凍して読み取ると、多くのディスク領域と時間が消費されます。 PHP の Archive_Tar 拡張機能を使用すると、tar ファイルの内容を直接読み取ることができ、面倒な解凍プロセスを回避し、コードの効率を向上させることができます。続いて、具体的な手順を見ていきましょう!

質問内容

tar ファイル内のファイルをループすることはできましたが、これらのファイルの内容を文字列として読み取る方法がわかりません。ファイルの内容を文字列として出力する方法を知りたいですか?

これは私のコードです

package main

import (
    "archive/tar"
    "fmt"
    "io"
    "log"
    "os"
    "bytes"
    "compress/gzip"
)

func main() {
    file, err := os.Open("testtar.tar.gz")

    archive, err := gzip.NewReader(file)

    if err != nil {
        fmt.Println("There is a problem with os.Open")
    }
    tr := tar.NewReader(archive)

    for {
        hdr, err := tr.Next()
        if err == io.EOF {
            break
        }
        if err != nil {
            log.Fatal(err)
        }

        fmt.Printf("Contents of %s:\n", hdr.Name)
    }
}

回避策

読み取りたい各ファイルの io.reader として tar.reader を使用するだけです。

リーリー

ファイル全体を文字列として必要な場合:

リーリー

一行ずつ読む必要がある場合は、これの方が良いです:

リーリー

以上がディスクに解凍せずに tar ファイルの内容を読み取りますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。