我正在一个项目中,我需要处理一些.taz压缩文件。有没有一种方法可以在C#dotnet核心中解压缩并提取这类文件?
谢谢!
答案 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