Я использую SharpZipLib для извлечения архивов.Мне удалось извлечь .zip архивы:
FastZip fastZip = new FastZip();
fastZip.ExtractZip(file, directory, null);
и извлечь .tar.gz:
// Use a 4K buffer. Any larger is a waste.
byte[] dataBuffer = new byte[4096];
using (Stream fileStream = new FileStream(file, FileMode.Open, FileAccess.Read))
{
using (GZipInputStream gzipStream = new GZipInputStream(fileStream))
{
// Change this to your needs
string fnOut = Path.Combine(directory, Path.GetFileNameWithoutExtension(file));
using (FileStream fsOut = File.Create(fnOut))
{
StreamUtils.Copy(gzipStream, fsOut, dataBuffer);
}
}
}
Есть ли способ извлечь любой вид архива, где я не делаюнужно знать тип архива заранее?(например, SharpZipLib.ExtractAnyArchive(file, directory)
)