解压缩一个带有dotnet核心的.taz文件



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

谢谢!

我通过使用UNIX命令行"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文件。

tar。Z是一个归档文件,可以在UNIXcompress实用程序的帮助下创建。它的文件被压缩成tarball(.tar(,然后使用现在相当过时的80年代压缩算法LZW进行进一步压缩。

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

下面是一个如何打开TAZ文件,然后将其中包含的TAR文件写入磁盘的示例。当然,如果TAR文件的大小可以完整地保存在内存中,那么您可以立即提取内存中的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);
}
}
}

相关内容

  • 没有找到相关文章

最新更新