使用dotnet core解压缩.taz文件

时间:2018-11-09 17:38:40

标签: c# .net-core compression

我正在一个项目中,我需要处理一些.taz压缩文件。有没有一种方法可以在C#dotnet核心中解压缩并提取这类文件?

谢谢!

3 个答案:

答案 0 :(得分:0)

tar.Z 是可以在UNIX compress实用程序的帮助下创建的存档文件。它的文件被压缩到一个tarball( .tar )中,然后使用现在比较陈旧的80年代压缩算法LZW进一步压缩。

您可以在流行的SharpZipLib库的帮助下提取这些软件包。

这是一个如何打开TAZ文件,然后将其包含的TAR文件写入磁盘的示例。当然,如果文件的大小可行,可以将其完全提取到内存中。

using (var inputStream = File.Open(PATH_TO_TARZ_FILE, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
        using (var tazStream = new LzwInputStream(inputStream))
        {
               using (var outputStream = PATH_TO_OUTPUT_TAR_FILE, 4096))
               {
                     tazStream.CopyTo(outputStream);
               }
        }
}

答案 1 :(得分:0)

我通过使用UNIX command line "gunzip"

找到了解决方法
  

gunzip myfilename.taz

gunzip 用于具有以下扩展名的文件:.gz,-gz,.z,-z,_z或.Z (并且还可以识别特殊扩展名.tgz和 .taz 作为.tar.gz和.tar.Z的简写。)

要运行此过程,我编写了以下代码:

public string ExtractFileFromTaz (string tazFilePath)
{
    var process = new Process()
    {
        StartInfo = new ProcessStartInfo
        {
            FileName = "gunzip",
            Arguments = tazFilePath,
            RedirectStandardOutput = true,
            UseShellExecute = false,
            CreateNoWindow = true
        }
    };

    process.Start();
    string result = process.StandardOutput.ReadToEnd();
    process.WaitForExit();

    return result;
}

结果输出是扩展名为 .tar 的文件,该文件替换了同一目录中的原始.taz文件。

答案 2 :(得分:-2)

只需使用Sharpcompress库https://github.com/adamhathcock/sharpcompress