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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.07.2011, 00:20   #1
LuckyTheGreat
Новичок
Джуниор
 
Регистрация: 14.07.2011
Сообщений: 3
По умолчанию Сообщение о загрузке и ошибке

Код:
using System;
using System.Diagnostics;
using System.Windows.Forms;
using System.Drawing;
using System.Net;
using System.IO;
using System.Text;
//Библиотеки для работы с MS SQL Server
using System.Data.SqlClient;
//Библиотеки для работы с XML
using System.Xml;
using System.Collections.Generic;
 
namespace WindowsFormsApplication4
{
    public partial class Parent : Form
    {
        public Parent()
        {
            InitializeComponent();
            this.button1.Click += new System.EventHandler(this.button1_Click);
            this.button2.Click += new System.EventHandler(this.button2_Click);
            listBox1.SelectionMode = SelectionMode.MultiExtended;
 
        }
 
        void wc_DownloadFileCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
        {
            MessageBox.Show("Fin!");
        }
 
 
 
        string ftpAddr = File.ReadAllLines(@"1.txt")[4].Split(new Char [] { '<', ' ', '=', '>'}, StringSplitOptions.RemoveEmptyEntries)[1];
 
        //string pass = "somePass";
        //string login = "someLogin";
        string outputFolder = @"d:\ftp";
        string resFolder = @"D:\out";
        public string[] GetFileList()
        {
            string[] downloadFiles;
            StringBuilder result = new StringBuilder();
            FtpWebRequest reqFTP;
            try
            {
                reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpAddr + "/"));
                reqFTP.UseBinary = true;
                //reqFTP.Credentials = new NetworkCredential(login, pass);
                reqFTP.Method = WebRequestMethods.Ftp.ListDirectory;
                WebResponse response = reqFTP.GetResponse();
                StreamReader reader = new StreamReader(response.GetResponseStream());
                //MessageBox.Show(reader.ReadToEnd());
                string line = reader.ReadLine();
                while (line != null)
                {
                    result.Append(line);
                    result.Append("\n");
                    line = reader.ReadLine();
                }
                result.Remove(result.ToString().LastIndexOf('\n'), 1);
                reader.Close();
                response.Close();
                //MessageBox.Show(response.StatusDescription);
                return result.ToString().Split('\n');
            }
            catch (Exception ex)
            {
                System.Windows.Forms.MessageBox.Show(ex.Message);
                downloadFiles = null;
                return downloadFiles;
            }
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            listBox1.Items.Clear();
            string[] files = GetFileList();
            foreach (string file in files)
            {
                listBox1.Items.Add(file);
            }
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            var filesToDownload = listBox1.SelectedItems;
            if (!Directory.Exists(outputFolder))
                Directory.CreateDirectory(outputFolder);
            foreach (var file in filesToDownload)
            {
                WebClient wc = new WebClient();
                wc.DownloadFileCompleted += new System.ComponentModel.AsyncCompletedEventHandler(wc_DownloadFileCompleted);
                wc.DownloadFileAsync(new Uri("ftp://" + ftpAddr + "/" + file.ToString()), outputFolder +"\\"+ Path.GetFileName(file.ToString()));
            }
        }
Как сделать так, чтобы он не выводил после каждого загруженного файла сообщение "Fin", а только один раз при окончательной загрузке всех файлов и как сделать так чтобы при ошибках загрзки он выводил соответствующее сообщение?
LuckyTheGreat вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сообщение об ошибке... Arinka Помощь студентам 9 25.05.2010 16:58
Сообщение об ошибке ruavia3 Microsoft Office Excel 3 13.10.2009 23:10
Сообщение об ошибке Kreadlling Общие вопросы C/C++ 3 08.09.2009 13:30
Сообщение об ошибке! QWERT1988 Общие вопросы Delphi 4 01.06.2009 17:14
Выдать сообщение об ошибке Detka Общие вопросы Delphi 17 10.07.2008 15:06