Методы извлечения файлов tar.gz с примерами кода

Чтобы извлечь файл «tar.gz», вы можете использовать различные методы в зависимости от используемого вами языка программирования. Вот несколько примеров на разных языках:

  1. Python:

    import tarfile
    def extract_tar_gz(file_path, extract_path):
    with tarfile.open(file_path, "r:gz") as tar:
        tar.extractall(extract_path)
    # Usage
    extract_tar_gz("example.tar.gz", "output_directory")
  2. Java:

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.util.zip.GZIPInputStream;
    import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
    import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
    public class TarGzExtractor {
    public static void extractTarGz(String file, String outputDir) throws IOException {
        try (TarArchiveInputStream tarIn = new TarArchiveInputStream(new GZIPInputStream(new FileInputStream(file)))) {
            TarArchiveEntry entry;
            while ((entry = tarIn.getNextTarEntry()) != null) {
                if (entry.isDirectory()) {
                    continue;
                }
                File outputFile = new File(outputDir, entry.getName());
                outputFile.getParentFile().mkdirs();
                try (FileOutputStream fos = new FileOutputStream(outputFile)) {
                    byte[] buffer = new byte[1024];
                    int len;
                    while ((len = tarIn.read(buffer)) != -1) {
                        fos.write(buffer, 0, len);
                    }
                }
            }
        }
    }
    // Usage
    public static void main(String[] args) throws IOException {
        extractTarGz("example.tar.gz", "output_directory");
    }
    }
  3. C# (.NET):

    using System;
    using System.IO;
    using System.IO.Compression;
    public class TarGzExtractor
    {
    public static void ExtractTarGz(string file, string outputDir)
    {
        using (var fileStream = new FileStream(file, FileMode.Open))
        using (var gzipStream = new GZipStream(fileStream, CompressionMode.Decompress))
        using (var tarArchive = new TarArchive(gzipStream))
        {
            tarArchive.ExtractContents(outputDir);
        }
    }
    // Usage
    public static void Main(string[] args)
    {
        ExtractTarGz("example.tar.gz", "output_directory");
    }
    }

Эти примеры демонстрируют, как извлечь файл «tar.gz» с помощью Python, Java и C#. Вы можете выбрать тот, который соответствует предпочитаемому вами языку программирования.