我已经下载了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);
}
}
}
}