Как да декомпресирате/деархивирате файлове, компресирани/архивирани чрез различни техники - zip, rar, gzip, tar

Изискване за система, която пиша, означава, че трябва да определя съдържанието на файлове/пакети, които може да са създадени с помощта на която и да е от редица различни техники за компресиране/архивиране - zip, gzip, rar, tar. Файловете ще бъдат разположени на отдалечени системи, които могат да работят с всеки вариант на Windows или Unix/Linux, и файловете могат да бъдат създадени с всякаква техника за компресиране/архивиране (ще се спра на управляем списък за поддръжка).

Какви формати обработва System.IO.Packaging - само zip?

Библиотека на трета страна? Това не е предпочитаният от мен вариант - трябва да поддържам тази система в бъдеще.

Всички насоки и предложения ще бъдат много оценени.


person JeffR    schedule 04.03.2014    source източник
comment
Странична бележка: Мисля, че получавате връзка между външни библиотеки и трябва да поддържате в бъдеще напълно назад... Още код, който напишете сами, повече код, който трябва да поддържате...   -  person Alexei Levenkov    schedule 04.03.2014
comment
Е, да, но имах предвид повече безплатен софтуер, отколкото търговски библиотеки. Търговски библиотеки, които бих разгледал. Трябва да поддържам системата, която доставям - и това означава всички библиотеки, които доставям с нея. Така че дори и да са търговски библиотеки, клиентът ми ще ме преследва, когато се провалят.   -  person JeffR    schedule 04.03.2014


Отговори (1)


System.IO.Packaging има ZipPackage реализация, която поддържа zip файлове. Всички други формати за компресиране не се поддържат първоначално и ще трябва да потърсите поддръжка от трета страна за тях.

DotNetZip също има поддръжка за zip файлове, но API може да е по-достъпен от вградения .net ZipPackage. SharpZipLib има поддръжка за още няколко файлови формата, включително Tar, GZip и BZip2.

Има и опция за използване на 7Zip и всички формати, които поддържа.

Има и много търговски опции: XCeed, Rebex, за да назовете двойка.

Няма ясен отговор на вашия въпрос и ще трябва да разберете коя опция ще работи най-добре за вас и да определите какъв модел на лицензиране искате да използвате.

person John Koerner    schedule 04.03.2014