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

Поиск:

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


КаРолЬ АсьКи МуАЛя
*


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

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



Требуется загрузить файл из интернет, но чтобы прогресс бар показывал процент загрузки файла.
 
загружаю так  

Код

 My.Computer.Network.DownloadFile("http://yandex.ru/index.hytml", "C:\index.html")


Но вот как прикрутить к этому прогресс бар незнаю ((

Помогите пожалуйста.
PM MAIL ICQ Skype   Вверх
diadiavova
Дата 13.9.2008, 19:57 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

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



Для загрузки файлов из сети надо использовать объект System.Net.WebClient. У него есть метод DownloadFileAsync, для контроля процесса загрузки используй обработчик события DownloadProgressChanged этого же объекта. Аргумент обработчика типа System.Net.DownloadProgressChangedEventArgs имеет свойство ProgressPercentage. Оно и покажет сколько процентов загружено.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Machaon
Дата 13.9.2008, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


КаРолЬ АсьКи МуАЛя
*


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

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



Можно пожалуйста пример новичек в .NET
PM MAIL ICQ Skype   Вверх
diadiavova
Дата 13.9.2008, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

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



Добавляю проект. Всё упрощено, но я думаю понятно(даже новичку). В верхнюю строку вводишь имя скачиваемого файла, в нижнюю  - куда сохранять(можно при помощи диалога), жмёшь загрузить, и наблюдаешь за прогрессом, по окончании загрузки прогрессбар обнуляется.

Присоединённый файл ( Кол-во скачиваний: 126 )
Присоединённый файл  DownloadFileExample.zip 61,17 Kb


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Machaon
Дата 13.9.2008, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


КаРолЬ АсьКи МуАЛя
*


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

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



Спс все работает.
PM MAIL ICQ Skype   Вверх
noob4ever
Дата 13.7.2009, 00:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



отличный пример, спасиба но возникает проблема если нужно сделать одновременную закачку 10 файлов

Код

Private Sub ButtonDownload_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ButtonDownload.Click
        wc1.DownloadFileAsync(New Uri(Me.TextBoxURI1.Text), Me.TextBoxFileName1.Text)
        wc2.DownloadFileAsync(New Uri(Me.TextBoxURI2.Text), Me.TextBoxFileName2.Text)
        wc3.DownloadFileAsync(New Uri(Me.TextBoxURI3.Text), Me.TextBoxFileName3.Text)
        wc4.DownloadFileAsync(New Uri(Me.TextBoxURI4.Text), Me.TextBoxFileName4.Text) 
    End Sub

Private Sub wc1_DownloadFileCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles wc1.DownloadFileCompleted
        Me.ProgressBar1.Value = 0
    End Sub
    Private Sub wc1_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles wc1.DownloadProgressChanged
        Me.ProgressBar1.Value = e.ProgressPercentage
    End Sub

    Private Sub wc2_DownloadFileCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles wc2.DownloadFileCompleted
        Me.ProgressBar2.Value = 0
    End Sub
    Private Sub wc2_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles wc2.DownloadProgressChanged
        Me.ProgressBar2.Value = e.ProgressPercentage
    End Sub

    Private Sub wc3_DownloadFileCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles wc3.DownloadFileCompleted
        Me.ProgressBar3.Value = 0
    End Sub
    Private Sub wc3_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles wc3.DownloadProgressChanged
        Me.ProgressBar3.Value = e.ProgressPercentage
    End Sub

    Private Sub wc4_DownloadFileCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles wc4.DownloadFileCompleted
        Me.ProgressBar4.Value = 0
    End Sub
    Private Sub wc4_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles wc4.DownloadProgressChanged
        Me.ProgressBar4.Value = e.ProgressPercentage
    End Sub


отображается прогреcc так: 1-2 progressbar'a движутся, следующие начинают двигаться после закачки предыдущих. как быть?

Это сообщение отредактировал(а) noob4ever - 13.7.2009, 01:03
PM MAIL   Вверх
diadiavova
Дата 13.7.2009, 02:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

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



На будущее: когда ты задаёшь вопрос просто отредактировав старое сообщение его могут просто не заметить(я кстати заметил случайно и не сразу, что ты отредактироовал пост). Пишешь новое - все кто подписан на тему получают уведомление. Я уже не говорю о том, что новую тему создавать надо, а не искать ту, которая больше всего подходит.

Теперь по вопросу. 
На количество одновременных подключений обычно действуют ограничения. Эти ограничения можно задавать самому в конфигурационном файле, но если этого не делать, то по-умолчанию даётся немного соединений.
Файл конфигурации находится в папке проекта и называется app.config. Это XML - lокумент, его надо открыть в XML-редакторе и добавить в корневой элемент секцию следующего содержания
Код

  <system.net>
    <connectionManagement>
      <add address="*" maxconnection="100"/>
    </connectionManagement>
  </system.net>


Как нетрудно понять из текста, добавляется параметр, который указывает приложению, что для любых адресов(*) максимальное количество соединений - 100. Можешь прописать для конкретных адресов другие данные, поскольку элементов add может быть несколько. smile 


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума VB .NET
diadiavova
  • Прежде чем задать вопрос, воспользуйтесь поиском: возможно Ваш вопрос уже обсуждался и на него был получен ответ.
  • Если такой же вопрос не найден, не стоит задавать свой вопрос в любую тему, создайте новую.
  • Заголовок темы должен отображать ее суть.
  • Содержание поста должно описывать проблему понятно, но в то же время, по возможности, лаконично. Сначала следует описать суть вопроса, потом можно привести пример кода, не вынуждайте других участников угадывать в чем Ваша проблема - телепатов здесь нет.
  • Будьте взаимно вежливы и дружелюбны.
  • При оформлении сообщений используйте форматирование, примеры кода заключайте в теги [CODE=vbnet][/CODE].
  • Также ознакомьтесь с общими правилами, действующими на всем форуме.
  • Если вопрос решен, не забывайте помечать тему решенной(вверху темы есть ссылка). Кроме того, если Вы хотите отблагодарить участников, оказавших помощь в решении, можно повысить им репутацию, в случае, если у Вас менее 100 сообщений в форуме и функция изменения репутации Вам недоступна, можете написать сюда.
  • Общие вопросы по программированию на платформе .NET обсуждаются здесь.
  • Литература по VB .NET обсуждается здесь.

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

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


 




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


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

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