Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > работа с ZIP


Автор: HellMasterHaiL 10.4.2007, 09:40
боброе бубро всем!
вот интересует вопрос: есть ли в студии средства для упаковки/распаковки архивов?
или всеже нужно юзать библиотеки стронних разработчиков???

в любом случае хотелось бы посмотреть примерчик!
заранее премного благодарен!

Автор: Gelis 10.4.2007, 11:45
Можно воспользоваться классами из пространства имен
System.IO.Compression
классы
GZipStream и DeflateStream
Код

MemoryStream outStream = new MemoryStream();
GZipStream zipStream = new GZipStream(outStream, CompressionMode.Compress);
//тута шота кидаем в стрим
zipStream.Write(.............);
zipStream.Close();

Автор: HellMasterHaiL 10.4.2007, 15:23
а как указать дополнительную информацию??? можно ли например сказать ему, что разбить на тома по стока-то байт, поставить пароль и тд?
или только вот так?

Автор: EsAlexey 10.4.2007, 15:30
GZipStream и DeflateStream сжимают потоки данных. Они не позволяют работать с архивами.

Автор: Gelis 10.4.2007, 16:53
Цитата(EsAlexey @  10.4.2007,  15:30 Найти цитируемый пост)
GZipStream и DeflateStream сжимают потоки данных. 

FileStream - тоже поток данных.

Цитата(EsAlexey @  10.4.2007,  15:30 Найти цитируемый пост)
 Они не позволяют работать с архивами.

Полностью согласен. Но можно спокойно сделать что-то издалека напоминающее WinRar.

Цитата(HellMasterHaiL @  10.4.2007,  15:23 Найти цитируемый пост)
можно ли например сказать ему, что разбить на тома по стока-то байт, поставить пароль и тд?

1. Можно вписать в файл дополнительную строку содержащую нужную информацию для сборки нескольких томов и запроса пароля. Допустим количество частей на которые разбит файл, crc, записать хэш-код пароля.
Код

for(int i=0;i<tomCount;i++)
{
       using(FileStream =File.Create(fileName+".part"+i.ToString())
       {
                    //бла-бла
       }
}


2. Можно еще с ZIP файлами работать (не выдумывая предложенных мной ранее извращений) используя CLS-совместимость C# с VisualJ# и используя классы пространства имен java.util.zip. По этому поводу была статья в MSDN Magazine в июне 2003 года. На английском ее можно скачать на сайте Microsoft, а если интересует русская версия, то пиши в личку скину.
3. Ну еще можно зайти http://www.win-rar.com/  и почитать про WinRAR API+ первая ссылка "А здесь смотрели"[/url]

Автор: mr.DUDA 11.4.2007, 10:22
http://www.icsharpcode.com/OpenSource/SharpZipLib/Default.aspx

Автор: HellMasterHaiL 31.5.2007, 18:27
вот вернулся к теме)))
скачал библиотечку с http://www.icsharpcode.com/OpenSource/Shar...ib/Default.aspx 

но вот мозгов не хватает на то, что бы понять и заюзать её ((
хочу взять файл, заархивировать его, а потом разархивировать!
может есть у кого примерчик??
 smile  smile  smile  smile  smile  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)