C# - архивы
подскажите пожалуйста, есть ли такая возможность в C# создать некий архив (с неизвестным расширением) и оттуда открывать файлы, например, в webBrowser открывать какую-нибудь страницу из того архива, притом желательно не перемещая нужные файлы в временную папку...
знаю, в 2007 microsoft office'е сделали наподобие... docx - это что-то типа архива, в котором лежат файлы xml...
подскажите пожалуйста как это организовывать :)
проблема когда в документе будут изображения и прочий навесной контент. вроде бы решение - использовать MHT, но подлый WebBrowser не хочет воспринимать правильно MHTML-код если его передавать в WebBrowser.DocumentStream или DocumentText. к тому же из-за Base64-кодированного внедренного содержимого размер MHT прилично увеличивается.
возможные решения:
1. изображения т.д. сохранять во временной папке, а сам документ хранить в памяти
2. в WebBrowser форсировать MIME-тип в multipart/related, чтобы он знал, что это MHT
3. вкурить то, что написано тут
Цитата:
берем WebBrowser.DocumentStream или DocumentText и загружаем в него HTML код хоть из обычного архива с паролем.
как это сделать??
Цитата:
ну, легче попробывать просто веб страницы пересохранить как mht...
я про то и говорю что MHT "из памяти" не так то и просто загрузить...
Цитата:
как это сделать??
:eek:
ну можно попробовать SharpZipLib для начала. там даже примеры есть в справке по-моему к этой библе. а так это можно сделать "всяко-разно" :)
Цитата: bagie2
ну можно попробовать SharpZipLib для начала.
Есть стандартные классы DeflateStream и GZipStream из пространства имен System.IO.Compression.
Цитата:
Есть стандартные классы DeflateStream и GZipStream из пространства имен System.IO.Compression.
Ерунда это. Видели как они "сжимают" ?) К тому же в SharpZipLib есть поддержка BZip2 и работа с контейнерами, а не только с потоками. Ну или другую библу поюзать. Или самому написать. В любом случае лично я предпочитаю всё что угодно, только не DeflateStream и GZipStream, хотя и их иногда хватает.
"Этот класс по существу не предоставляет функциональной возможности для добавления файлов в Zip-архивы или для извлечения файлов из этих архивов"
если я правильно понял, эти классы только умеют архивировать и обратно... а мне нужно напрямую обраться в архив, ничего желательно не вынося от туда...
в C# ведь не встроен автоматически SharpZipLib? его надо ведь скачивать?
и возможно будет с помощью него напрямую обращаться к файлам в архиве?