Работа со сжатыми файлами в C # - PullRequest
0 голосов
/ 09 мая 2011

Я ищу библиотеку c # с открытым исходным кодом, но лицензированную для разработки в закрытых источниках (например, в стиле MIT / BSD), которая позволяет мне работать со сжатыми файлами. Я действительно не очень разборчив в том, какое сжатие используется, только в том, что оно является чем-то общим (.zip, .rar, .tar, .tar.gz и т. Д.).

Причина, по которой мне нужна эта функциональность, заключается в том, что я создаю платформу веб-приложений и сейчас лучший и самый простой способ иметь возможность создавать и распространять модули (или плагины) для платформы, я думаю, с помощью сжатого файла. , Сжатый файл будет содержать файлы .dll, которые будут включать в себя исходный код и виды бритвы, а также любое количество вспомогательных файлов (изображения, dotlesscss, javascript и т. Д.). То, что я хочу сделать, это через саму платформу веб-приложений, позволяющую пользователю иметь возможность просто загрузить один сжатый файл и сделать так, чтобы веб-приложение скопировало файл, извлекло все файлы в нем и скопировало извлеченные файлы. в правильные места.

Ответы [ 5 ]

6 голосов
/ 09 мая 2011

Это уже встроено в .net framework :-) просто проверьте пространство имен сжатия:
http://msdn.microsoft.com/en-us/library/system.io.compression.aspx

2 голосов
/ 09 мая 2011

DotNetZip - довольно популярная библиотека с открытым исходным кодом. Он использует Microsoft Public License (Ms-PL) лицензию, которую вы можете прочитать о здесь и посмотреть, соответствует ли она вашим потребностям.

0 голосов
/ 09 мая 2011

Если вы хотите упаковать несколько файлов в один сжатый файл, рассмотрите возможность использования классов из System.IO.Packaging - http://msdn.microsoft.com/en-us/library/ms569886.aspx - позволяет поместить файлы в Zip-файл (требуется один дополнительный XML-файл поверх содержимого)

0 голосов
/ 09 мая 2011

Если вам нужна возможность ZIP, это не действительно , присутствующее в .Net Framework, и вам нужно будет перейти к сторонней библиотеке, такой как SharpZipLib или DotNetZip.SharpZipLib не BSD, это GPL или LGPL, и может не подойти для вас на основании вашего описания.DotNetZip - это Ms-PL, похожая на BSD, отметьте http://www.opensource.org/licenses/ms-pl.

поток GZIP доступен в пространстве имен System.IO.Compression, которое встроено в библиотеку базовых классов .NET Framework, но этот поток не читает и не распаковывает файлы tar.gz, что, как мне кажется,Вы хотели бы использовать, если вы объединяли несколько файлов.GZIP по умолчанию хранит только ОДИН файл в сжатом архиве, и вы можете использовать этот GZipStream для , , но он не будет использовать Tars.SharpZipLib делает Tars, но ... лицензию.

Существуют сторонние (маленькие) библиотеки Ms-PL (tar), которые в сочетании с GZIP в .NET могут позволить вам читать tar.gz (или .tgz)файлы легко.
http://cheeso.members.winisp.net/srcview.aspx?dir=Tar

0 голосов
/ 09 мая 2011

.net уже имеет встроенную поддержку gzip и deflate в system.io.compression

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...