我已经下载了 SharpCompress 源代码并创建了一个简单的控制台应用程序来解压缩一个小的 .xz 文件。在 github 站点上的几个不同示例和 stackoverflow 上的其他示例之后,我找不到任何实际适用于“解压缩”.xz 文件的组合,也找不到任何说明或文档。有没有人真正能够使用 SharpCompress “解压缩” .xz 文件?
using (Stream stream = File.OpenRead(@"C:\temp\ot.xz"))
{
using (var reader = ReaderFactory.Open(stream))
{
while (reader.MoveToNextEntry())
{
if (!reader.Entry.IsDirectory)
{
Console.WriteLine(reader.Entry.Key);
reader.WriteEntryToDirectory(@"C:\temp", new ExtractionOptions()
{
ExtractFullPath = true,
Overwrite = true
});
}
}
}
}
此特定代码引发异常“无法确定压缩流类型。支持的阅读器格式:Zip、GZip、BZip2、Tar、Rar、LZip、XZ'
以下代码效果更好(不会引发错误),但 Entry.Key 值是意外的或乱码。
using (Stream stream = File.OpenRead(@"C:\temp\ot.xz"))
{
var xzStream = new XZStream(stream);
using (var reader = TarReader.Open(xzStream))// ReaderFactory.Open(stream))
{
while (reader.MoveToNextEntry())
{
if (!reader.Entry.IsDirectory)
{
Console.WriteLine(reader.Entry.Key);
}
}
}
}