Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> скачать файл 
V
    Опции темы
Evropeec
Дата 4.3.2009, 01:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 20.2.2007

Репутация: нет
Всего: нет



помогите плиз,
как скачать файл с web(zip), затем разпаковать в директорию, и запустить. Дело в том, что это надо сделать под Windows Mobile. System.Net.WebClient не подходит, так как его в Mobile просто нет.
PM MAIL   Вверх
Evropeec
Дата 6.3.2009, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 20.2.2007

Репутация: нет
Всего: нет




Со скачиванием разобрался.

http://www.gotdotnet.ru/Forums/Windows/536070.aspx

Теперь архивация:

У меня есть две процедуры, одна создаёт архив, другая распаковывает

Код


        /// <summary>
        /// To Compress A File
        /// </summary>
        /// <param name="filePath">The Complete file path to the file you want to compress</param>   
        protected void Compress(string fileSource, string fileArchiv)
        {
            FileStream sourceFile = File.OpenRead(fileSource);
            FileStream destinationFile = File.Create(fileArchiv);
            byte[] buffer = new byte[sourceFile.Length];
            GZipStream zip = null;
            try
            {
                sourceFile.Read(buffer, 0, buffer.Length);
                zip = new GZipStream(destinationFile, CompressionMode.Compress);
                zip.Write(buffer, 0, buffer.Length);
            }
            catch (Exception ex)
            {
                Console.Write(ex.Message);
            }
            finally
            {
                zip.Close();
                sourceFile.Close();
                destinationFile.Close();
            }
        }

        /// <summary>
        /// To Decompress an already compressed file
        /// </summary>
        /// <param name="filePath">The complete file path of the already compressed file</param>
        protected void Decompress(string fileArchiv, string fileSource)
        {
            FileStream sourceFile = File.OpenRead(fileArchiv);
            FileStream destinationFile = File.Create(fileSource);
            GZipStream unzip = null;

            byte[] bufferWrite = new byte[4];
            FileStream fsSource = new FileStream(fileArchiv, FileMode.Open, FileAccess.Read, FileShare.Read);
            fsSource.Position = (int)fsSource.Length - 4;
            fsSource.Read(bufferWrite, 0, 4);
            fsSource.Position = 0;

            byte[] buffer = new byte[BitConverter.ToInt32(bufferWrite, 0) + 100];
            //byte[] buffer = new byte[sourceFile.Length];
            try
            {
                unzip = new GZipStream(sourceFile, CompressionMode.Decompress, false);
                int numberOfBytes = unzip.Read(buffer, 0, buffer.Length);

                destinationFile.Write(buffer, 0, numberOfBytes);
            }
            catch (Exception ex)
            {
                Console.Write(ex.Message);
            }
            finally
            {
                sourceFile.Close();
                destinationFile.Close();
                unzip.Close();
            }
        }



но архивируют и распаковывают они по одному файлу, а мне необходимо по нескольку. 

КАК сделать?
PM MAIL   Вверх
APXEOLOG
Дата 10.3.2009, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 12.4.2007
Где: Мурманск

Репутация: нет
Всего: 1



Я бы разархивировал через рар. Поискал бы в реестре ключик с адресом рара, скопировал бы rar.exe в папку с файлом, разархивировал, затем удалил бы rar.exe.
--------------------
Ученые долго не знали как назвать частоту.Потом так и назвали Hz.
PM MAIL ICQ   Вверх
mihryak
Дата 10.3.2009, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 731
Регистрация: 28.4.2007
Где: С-Пб

Репутация: 19
Всего: 36



Цитата(APXEOLOG @  10.3.2009,  21:13 Найти цитируемый пост)
Я бы разархивировал через рар. Поискал бы в реестре ключик с адресом рара, скопировал бы rar.exe в папку с файлом, разархивировал, затем удалил бы rar.exe. 

угу
и в пользовательское соглашенеи прописать обязательство клиента купить и установить WinRar
очень плохой совет

Evropeec, GZipStream не умеет работать с множественными файлами, только с потоками, точнее с одним потоком
у тебя три варианта
- заливать в зипстрим файл за файлом, придумав свой служебный заголовок, по которому можно будет правильно восстановить длины и имена файлов
- поискать что-нибудь уже написанное, например, SharpZipLib (если не смущает GPL-лицензия)
- написать самому
PM MAIL ICQ   Вверх
jonie
Дата 10.3.2009, 22:18 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 22
Всего: 118



APXEOLOG вам не стоит быть хирургом... этак вы будете искать печень путем поиска сначала сердца (с выкручиванием его ессно), потом дойдете до желудка...

в общем проведенное расследование показало что нормальным образом это нереализуемо ибо M$ не предусмотрела реализацию метаинформации в архиве (этого стандарт gzip не требует).

в .net 3+ есть класс ZipPackage
про него прочитать тут: http://weblogs.asp.net/jgalloway/archive/2...harpziplib.aspx


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Evropeec
Дата 12.3.2009, 00:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 20.2.2007

Репутация: нет
Всего: нет



Всем гигантское спасибо за помощь,

сделал через ICSharpCode.SharpZipLib
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0471 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.