С#.Net 3.5 Unzip zip file no 3rd party

Я пишу приложение Winform в .NET 3.5, и мне нужно разархивировать файл .rar или .zip.
Я нашел много вещей, но я не нашел ни одной третьей стороны. Я не мог перейти на .NET 4 или .NET 4.5.

Благодарим вас за помощь. Horbert

Ответ 1

.NET framework не поддерживает файлы .RAR и не поддерживает Zip файлы до .NET 4.5.

Если вы хотите поддерживать .ZIP(или .RAR) в .NET 3.5, вам понадобится стороннее решение. Библиотека DotNetZip, например, поддерживает .NET 3.5 и полностью функциональна для обработки файлов .ZIP.

Существуют коммерческие продукты, которые поддерживают RAR, например Chilkat RAR.

Ответ 3

Если вам нужно только распаковать zip файл, вам не нужно добавлять внешнюю стороннюю библиотеку.

Только вам нужно добавить ссылку на Средства управления Microsoft Shell и автоматизацию со вкладки COM в диспетчере ссылок в Visual Studio.

private static void Unzip(String sourceFile,String destination) 
{
    Shell32.ShellClass sc = new Shell32.ShellClass();
    Shell32.Folder SrcFlder = sc.NameSpace(sourceFile);
    Shell32.Folder DestFlder = sc.NameSpace(destination);
    Shell32.FolderItems items = SrcFlder.Items();
    DestFlder.CopyHere(items, 20);          
}

При этом вам не нужно распространять дополнительный файл dll с вашим приложением.

Ответ 4

Собственно,.NET 3.5 делает .zip файлы, используя DeflateStream. Вы должны обрабатывать заголовки самостоятельно, но PKWare опубликовала спецификацию, и вы можете создавать структуры и использовать потоки.

Нет необходимости в стороннем коде... но вам придется подходить к нему в более традиционной, старой школьной манере. Они не совсем расклеивают себя.