Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.09.2014, 15:05   #1
Siblingvv
Новичок
Джуниор
 
Регистрация: 14.09.2014
Сообщений: 1
По умолчанию Выполнение разархивации ПОСЛЕ скачивания файла

Мужики, такая у меня проблема: я скачиваю файл, потом пытаюсь его распаковать, но распаковка происходит еще до полного скачивания файла. Если ставить скачивание и распаковку на 2 разных кнопки - все работает.
Как сделать, задержку распаковки до того момента, пока файл не скачается полностью?

Ошибка (скрин, не прикрепился) - http://puu.sh/byuwY/2506b49425.jpg , также сам код ниже:


Код:
void webClient_DownloadProgressChanged(object sender, System.Net.DownloadProgressChangedEventArgs e)
      {
          progressBar1.Value = e.ProgressPercentage;
      }
      private void button2_Click(object sender, EventArgs e)
      {
          System.Net.WebClient webClient = new System.Net.WebClient();
          Uri uri = new Uri("http://blackfire-hack.ru/sets/space/space1.zip");
          webClient.DownloadFileAsync(uri, @"space.zip");
          webClient.DownloadProgressChanged += new System.Net.DownloadProgressChangedEventHandler(webClient_DownloadProgressChanged);
 
          using (Stream stream = File.OpenRead(@"space.zip"))
          {
              var reader = ReaderFactory.Open(stream);
              while (reader.MoveToNextEntry())
              {
                  if (!reader.Entry.IsDirectory)
                  {
                      Console.WriteLine(reader.Entry.FilePath);
                      reader.WriteEntryToDirectory(@"F:\test", ExtractOptions.ExtractFullPath | ExtractOptions.Overwrite);
                  }
              }
          }
          
 
          
      }
Изображения
Тип файла: jpg 27f58f433f.jpg (83.2 Кб, 125 просмотров)
Siblingvv вне форума Ответить с цитированием
Старый 14.09.2014, 15:58   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

DownloadFile() юзай вместо DownloadFileAsync, чтоб код после него подождал загрузку.
Или разархивирывай в http://msdn.microsoft.com/en-us/libr...v=vs.110).aspx
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.09.2014, 16:10   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

у вас же есть событие о загрузке...что мешает в нем сделать то что надо.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ProgressBar, скачивания файла по url serres Общие вопросы .NET 16 13.11.2010 06:16
После наведения курсора на линк нужен выбор формата файла для скачивания armansystem HTML и CSS 0 25.05.2010 22:33
Скачивания файла designer999 Работа с сетью в Delphi 15 22.02.2010 22:21
после скачивания 40-50 мб начинают вылазить ошибки винды Красавчег))) Windows 6 09.10.2009 22:29
проблема с функцией скачивания файла из интернета ZeitGeist7 Работа с сетью в Delphi 2 27.02.2009 19:43