Пятница, 25.05.2012, 20:21

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Страница 1 из 11
Форум игроделов » Программирование » Программирование .NET » Загрузка файла (С сайта на C#)
Загрузка файла
DusklyДата: Четверг, 02.02.2012, 00:13 | Сообщение # 1
Rush Games
Сообщений: 418
Сейчас нет на сайте
Всем привет. Вот пользовался кодом для скачки файла с сайта (для кнопки):
Code
WebClient webClient = new WebClient();
   webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed);
   webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChanged);
   webClient.DownloadFileAsync(new Uri("http://mysite.com/myfile.txt"), @"c:\myfile.txt");
}

private void ProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
   progressBar1.Value = e.ProgressPercentage;
}

private void Completed(object sender, AsyncCompletedEventArgs e)
{
   MessageBox.Show("Download completed!");

Но когда я его вставил в другую кнопку. мне написало:

Как исправить? или дайте код чтобы можно было много раз вставлять в объекты и скачивать файлы. С меня +

Добавлено (01.02.2012, 23:00)
---------------------------------------------
ап, помогите!!!

Добавлено (02.02.2012, 00:02)
---------------------------------------------
ап, помогите плз!!

Добавлено (02.02.2012, 00:13)
---------------------------------------------
п



Разрабатываеться:
флеш игра для соц. Сетей (Бои друзей) - временное название!
3д игра (пока без названия)
 
RikettaДата: Четверг, 02.02.2012, 07:20 | Сообщение # 2
Strategist
Сообщений: 597
Сейчас нет на сайте
Ты ссылаешь на класс, а не на его объект.
А вообще, сейчас получше посмотрю.

Добавлено (02.02.2012, 07:20)
---------------------------------------------
Не знаю, что вы там наворотили, но у меня все работает, мало кода дал ты.
У меня такой код:
Code
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;

namespace Downloader
{
      public partial class Form1 : Form
      {
          public Form1()
          {
              InitializeComponent();
          }

          private void buttonStartDownload_Click(object sender, EventArgs e)
          {
              saveFileDialogSave.ShowDialog();
              WebClient webClient = new WebClient();
              webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChanged);
              labelInfo.Text = "Загрузка...";
              webClient.DownloadFileAsync(new Uri(textBoxUrl.Text), saveFileDialogSave.FileName);
              webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed);
          }
          private void ProgressChanged(object sender, DownloadProgressChangedEventArgs e)
          {
              progressBarDownload.Value = e.ProgressPercentage;
          }
          private void Completed(object sender, AsyncCompletedEventArgs e)
          {
              labelInfo.Text = "Загрузка успешно завершена.";
          }
      }
}

Вот тебе файл проекта: Загрузить. 61 кб.
Переделай под свои нужды.

Работаю с C#, XNA и WM Engine.
Arduino - аппаратная вычислительная платформа
Стоик - Экономическая 2D RTS
InfoBox 1.2 - Вышла финальная версия.


Сообщение отредактировал Riketta - Четверг, 02.02.2012, 09:35
 
DusklyДата: Четверг, 02.02.2012, 13:03 | Сообщение # 3
Rush Games
Сообщений: 418
Сейчас нет на сайте
Riketta, а можешь переделать чтобы не надо было вводить ссылку?
Например есть 3 кнопки. и каждая из них качает свой файл (если нажать). Поможете?

Добавлено (02.02.2012, 13:03)
---------------------------------------------
ап, помогите!!



Разрабатываеться:
флеш игра для соц. Сетей (Бои друзей) - временное название!
3д игра (пока без названия)
 
RikettaДата: Четверг, 02.02.2012, 13:16 | Сообщение # 4
Strategist
Сообщений: 597
Сейчас нет на сайте
Так.
Code
          private void buttonNumber1_Click(object sender, EventArgs e)
            {
                saveFileDialogSave.ShowDialog();
                WebClient webClient = new WebClient();
                webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChanged);
                labelInfo.Text = "Загрузка...";
                webClient.DownloadFileAsync(new Uri(ССЫЛКА НА ФАЙЛ), saveFileDialogSave.FileName);
                webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed);
            }
                    private void buttonNumber2_Click(object sender, EventArgs e)
            {
                saveFileDialogSave.ShowDialog();
                WebClient webClient = new WebClient();
                webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChanged);
                labelInfo.Text = "Загрузка...";
                webClient.DownloadFileAsync(new Uri(ССЫЛКА НА ФАЙЛ), saveFileDialogSave.FileName);
                webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed);
            }
                    private void buttonNumber3_Click(object sender, EventArgs e)
            {
                saveFileDialogSave.ShowDialog();
                WebClient webClient = new WebClient();
                webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChanged);
                labelInfo.Text = "Загрузка...";
                webClient.DownloadFileAsync(new Uri(ССЫЛКА НА ФАЙЛ), saveFileDialogSave.FileName);
                webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed);
            }
   

Делаешь соответственно 3 кнопки на форме, с названиями: buttonNumber1, buttonNumber2, buttonNumber3.
И с событиями соответственно: buttonNumber1_Click, buttonNumber2_Click, buttonNumber3_Click.
Можно тупо сделать 3 string переменные, например:
public string URL1 = "http://gcup.ru/forum/66-20404-1";
public string URL2 = "http://gcup.ru/forum/66-20404-1";
public string URL3 = "http://gcup.ru/forum/66-20404-1";

И переделай код с сылкой каждой кнопки на webClient.DownloadFileAsync(new Uri(URL3), saveFileDialogSave.FileName);
И т.д.

Это же проще простого.

Работаю с C#, XNA и WM Engine.
Arduino - аппаратная вычислительная платформа
Стоик - Экономическая 2D RTS
InfoBox 1.2 - Вышла финальная версия.


Сообщение отредактировал Riketta - Четверг, 02.02.2012, 13:17
 
DusklyДата: Четверг, 02.02.2012, 18:54 | Сообщение # 5
Rush Games
Сообщений: 418
Сейчас нет на сайте
Riketta, Вот новая ошибка:

Добавлено (02.02.2012, 13:46)
---------------------------------------------
Вот я немного по исправлял:

Добавлено (02.02.2012, 13:48)
---------------------------------------------
все, исправил. Вот тупой)) не хватало:

Code
using System.Net;

Добавлено (02.02.2012, 18:17)
---------------------------------------------
ап

Добавлено (02.02.2012, 18:54)
---------------------------------------------
ап



Разрабатываеться:
флеш игра для соц. Сетей (Бои друзей) - временное название!
3д игра (пока без названия)
 
V1talik30Дата: Пятница, 03.02.2012, 14:34 | Сообщение # 6
Свободный разработчик
Сообщений: 131
Сейчас нет на сайте
Quote
все, исправил. Вот тупой)) не хватало:
using System.Net;


Бывает. biggrin

Программист (.NET, Pascal), Игродел(Scirra Construct, Game Salad, Xcode), Художник(Photoshop CS5, Paint, Iconizer), 3d моделлер(Google Sketch Up 8, 3ds Max 2012), Монтаж Видео (Sony Vegas Pro 11, iMuvie, Adobe After Effects CS5), Обработка звука (Sony Sound Forge 10 Pro, Garage Band)
Глава
 
Форум игроделов » Программирование » Программирование .NET » Загрузка файла (С сайта на C#)
Страница 1 из 11
Поиск:

Все права сохранены. GcUp.ru © 2008-2012 Рейтинг