Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

C# - архивы

16K
09 марта 2010 года
_HemP_
50 / / 09.03.2008
здравствуйте.
подскажите пожалуйста, есть ли такая возможность в C# создать некий архив (с неизвестным расширением) и оттуда открывать файлы, например, в webBrowser открывать какую-нибудь страницу из того архива, притом желательно не перемещая нужные файлы в временную папку...
знаю, в 2007 microsoft office'е сделали наподобие... docx - это что-то типа архива, в котором лежат файлы xml...
подскажите пожалуйста как это организовывать :)
8.2K
09 марта 2010 года
bagie2
299 / / 26.10.2008
берем WebBrowser.DocumentStream или DocumentText и загружаем в него HTML код хоть из обычного архива с паролем.

проблема когда в документе будут изображения и прочий навесной контент. вроде бы решение - использовать MHT, но подлый WebBrowser не хочет воспринимать правильно MHTML-код если его передавать в WebBrowser.DocumentStream или DocumentText. к тому же из-за Base64-кодированного внедренного содержимого размер MHT прилично увеличивается.

возможные решения:
1. изображения т.д. сохранять во временной папке, а сам документ хранить в памяти
2. в WebBrowser форсировать MIME-тип в multipart/related, чтобы он знал, что это MHT
3. вкурить то, что написано тут
16K
11 марта 2010 года
_HemP_
50 / / 09.03.2008
ну, легче попробывать просто веб страницы пересохранить как mht...
Цитата:
берем WebBrowser.DocumentStream или DocumentText и загружаем в него HTML код хоть из обычного архива с паролем.


как это сделать??

8.2K
11 марта 2010 года
bagie2
299 / / 26.10.2008
Цитата:
ну, легче попробывать просто веб страницы пересохранить как mht...


я про то и говорю что MHT "из памяти" не так то и просто загрузить...

Цитата:
как это сделать??


:eek:

ну можно попробовать SharpZipLib для начала. там даже примеры есть в справке по-моему к этой библе. а так это можно сделать "всяко-разно" :)

5
11 марта 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: bagie2

ну можно попробовать SharpZipLib для начала.


Есть стандартные классы DeflateStream и GZipStream из пространства имен System.IO.Compression.

8.2K
12 марта 2010 года
bagie2
299 / / 26.10.2008
Цитата:
Есть стандартные классы DeflateStream и GZipStream из пространства имен System.IO.Compression.


Ерунда это. Видели как они "сжимают" ?) К тому же в SharpZipLib есть поддержка BZip2 и работа с контейнерами, а не только с потоками. Ну или другую библу поюзать. Или самому написать. В любом случае лично я предпочитаю всё что угодно, только не DeflateStream и GZipStream, хотя и их иногда хватает.

16K
13 марта 2010 года
_HemP_
50 / / 09.03.2008
посмотрел на msdn и вот что написано про DeflateStream и GZipStream:
"Этот класс по существу не предоставляет функциональной возможности для добавления файлов в Zip-архивы или для извлечения файлов из этих архивов"
если я правильно понял, эти классы только умеют архивировать и обратно... а мне нужно напрямую обраться в архив, ничего желательно не вынося от туда...
в C# ведь не встроен автоматически SharpZipLib? его надо ведь скачивать?
и возможно будет с помощью него напрямую обращаться к файлам в архиве?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог