Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
2 / 2 / 5
Регистрация: 25.08.2015
Сообщений: 129

Повторная загрузка файла

18.08.2016, 17:53. Показов 613. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Кто может сказать, почему при повторном нажатием появляется дополнительная загрузка и файл скачивается по нескольку раз, с каждым нажатием, главное первая загрузка происходит нормально

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
using Ionic.Zip;
using System;
using System.ComponentModel;
using System.Net;
using System.Threading;
using System.Windows.Forms;
 
namespace Download_zip_razarhiv
{
    public partial class Form1 : Form
    {
        WebClient webClient = new WebClient();
 
        SynchronizationContext context;
 
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed);
            webClient.DownloadFileAsync(new Uri("http://help-sites.do.am/add/Dll.zip"), Environment.CurrentDirectory + "\\Dll.zip");
        }
 
        private void Completed(object sender, AsyncCompletedEventArgs e)
        {
            // Разархивация архива
            var zip = ZipFile.Read(Environment.CurrentDirectory + "\\Dll.zip");
            zip.ExtractProgress += ExtractProgress;
 
 
            context = SynchronizationContext.Current;
            new Thread(
                delegate ()
                {
                    ExtractAsync(Environment.CurrentDirectory + "\\Dll", zip);
                }).Start();
        }
 
        /// <summary>
        /// Метод распаковки всех файлов в указанную папку.
        /// </summary>
        /// <param name="to">Папка в которую будет распакован архив.</param>
        /// <param name="zip">Экземпляр класса ZipFile, из которого нужно произвести распаковку.</param>
        void ExtractAsync(string to, ZipFile zip)
        {
            zip.ExtractAll(to, ExtractExistingFileAction.DoNotOverwrite);
            zip.Dispose();
        }
 
        void ExtractProgress(object sender, ExtractProgressEventArgs e)
        {
            switch (e.EventType)
            {
                case ZipProgressEventType.Extracting_AfterExtractEntry:
                    if (context != null)
                        context.Send(
                            (o) =>
                            {
                                // --->
                                Text = e.EntriesExtracted.ToString();
                                if (e.EntriesExtracted == e.EntriesTotal)
                                {
                                    MessageBox.Show("Завершено");
                                }
                                // <---
                            },
                            null
                            );
                    break;
            }
        }
    }
}
Вложения
Тип файла: zip Ionic.zip (272.9 Кб, 1 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.08.2016, 17:53
Ответы с готовыми решениями:

Повторная загрузка файла на FTP-сервер без перезапуска программы
Итак, суть в чем: в моей программе происходит загрузка файла на FTP-сервер. Код метода загрузки, признаюсь, не мой, но в исходной программе...

Повторная загрузка
Есть код по загрузке файла. &lt;form enctype=&quot;multipart/form-data&quot; action=&quot;check.php&quot; method=&quot;post&quot;&gt; &lt;input type=&quot;hidden&quot;...

Повторная загрузка сцены
Добрый день. Клиент. Есть стартовая сцена. На ней меню. Один из объектов в иерархии - пустой объект с логикой сети. При подключении всех...

1
2 / 2 / 5
Регистрация: 25.08.2015
Сообщений: 129
18.08.2016, 18:33  [ТС]
Вроде как context обнуляется

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
                    if (context != null)
                        context.Send(
                            (o) =>
                            {
                                // --->
                                if (e.EntriesExtracted == e.EntriesTotal)
                                {
                                    // запуск программы
                                        MessageBox.Show("Завершено");
                                }
                                // <---
                            },
                            null
                            );
Но в чем ошибка тогда?

Добавлено через 27 минут
Что то в этом не так
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
using System;
using System.ComponentModel;
using System.Net;
using System.Windows.Forms;
 
namespace Download_zip_razarhiv
{
    public partial class Form1 : Form
    {
        WebClient webClient = new WebClient();
 
        private int f;
 
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed);
            webClient.DownloadFileAsync(new Uri("http://help-sites.do.am/add/Dll.zip"), Environment.CurrentDirectory + "\\Dll.zip");
        }
 
        private void Completed(object sender, AsyncCompletedEventArgs e)
        {
            Text = (f += +1).ToString();
        }
    }
}
Добавлено через 4 минуты
C#
1
WebClient webClient = new WebClient();
Все понял, вот в чем причина, а почему так устроено?
надо не выносить за функцию
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.08.2016, 18:33
Помогаю со студенческими работами здесь

Повторная загрузка карт
как сделать так, чтобы, при переходе между контроллерами, уже загруженные части карты не загружались заново? есть варик кешировать их, но...

Повторная загрузка из Excel в DataGridView вызывает ошибку
Данные загружаю из Excel в DataGridView2 все нормально. Далее необходимо загрузить в DataGridView2 новый файл из Excel. Предварительно...

Повторная отправка файла через Socket дает битые данные
Доброе/ый утро/день/вечер! Вопрос по Socket'ам Отправляю файл - Читаю/отправляю порциями. Файл клиент принимает, файл запускается(в...

Загрузка файла в ТекстБокс и открытие файла, зная его полный путь!
Всем привет! Имеется определенная проблема: ввожу в textbox полный путь к файлу, после сохраняю его с помощью кода: Dim FN as...

Загрузка файла через curl, а вместо файла страница с кроказабярами
Скачиваю файл через curl, а вместо него вылазает страница с крокозябрами HTTP/1.1 100 Continue HTTP/1.1 200 OK Server: nginx Date: Sat, 16...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru