Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# .NET
Войти
Регистрация
Восстановить пароль
 
chaleureux
17 / 20 / 19
Регистрация: 24.12.2014
Сообщений: 973
#1

Скачивание файлов на рабочий стол - C#

26.06.2015, 17:08. Просмотров 506. Ответов 4
Метки нет (Все метки)

Подскажите как:
Мне скачать rar - zip Архив на рабочий стол
Пробовал так ничего не получилось
C#
1
2
3
4
System.Net.WebClient webClient = new System.Net.WebClient();
            string link = @"https://Ваша ссылка.rar";
            string downloadFileName = System.IO.Path.GetFileName("Programs.rar");
            webClient.DownloadFileAsync(new Uri(link), Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) + downloadFileName);
Он как бы появляется только не на рабочем столе а в users и файл не загружается и весит там 5 кб
Что делать:
И как еще можно получиться прямую ссылку на скачивание?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.06.2015, 17:08
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Скачивание файлов на рабочий стол (C#):

Защищенный рабочий стол
Добрый день. Делаю программу которая не даёт сидеть за компьютером более 30...

C# windows service рабочий стол
Добрый день ! Вопросик такой возник , помогите разобраться. Пишу сервис под...

Рабочий стол и его изменение
Можно ли каким-то образом через хэндлы или винапи поставить приложение поверх...

Сохранение файла на рабочий стол
Вот написал первую свою прогу на С#. using System; using...

Иконка программы на рабочий стол
Как на C# отправить иконку программы: 1. На Рабочий Стол. 2. В панель...

Как определить, на какой монитор в данный момент выводится рабочий стол
Вопрос такой - как программе узнать, на какой монитор в данный момент выводится...

4
AndreyVorobey
150 / 150 / 86
Регистрация: 14.04.2015
Сообщений: 598
30.06.2015, 09:00 #2
Мне кажется, ты уже писал по этой теме раньше) И какие проблемы возникли с тем кодом?)
0
OwenGlendower
Супер-модератор
Эксперт .NET
8753 / 7757 / 3320
Регистрация: 17.03.2014
Сообщений: 15,258
Записей в блоге: 1
30.06.2015, 10:02 #3
Цитата Сообщение от chaleureux Посмотреть сообщение
Он как бы появляется только не на рабочем столе а в users
Ты неправильно строишь путь в этом коде:
C#
1
Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) + downloadFileName
GetFolderPath() возвращает путь без слеша в конце и значит получается путь к файлу внутри родительского каталога для рабочего стола. Нужно добавить слеш:
C#
1
Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) + @"\" + downloadFileName
Или использовать Path.Combine который добавит слеш автоматически:
C#
1
Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory), downloadFileName)
Цитата Сообщение от chaleureux Посмотреть сообщение
весит там 5 кб
Это потому что AndreyVorobey привел плохой пример. DownloadFileAsync работает в асинхронном режиме. Нужно использовать метод DownloadFileTaskAsync в паре с await или метод DownloadFile который качает файл целиком и только тогда возвращает управление. В итоге код будет примерно таким:
C#
1
2
3
4
5
6
7
using System.IO;
using System.Net;
...
WebClient webClient = new WebClient();
string link = @"https://Ваша ссылка.rar";
string downloadFileName = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory), "Programs.rar");
await webClient.DownloadFileTaskAsync(new Uri(link), downloadFileName);
Добавлено через 38 минут
chaleureux, ты же несколько дней назад уже разобрался с решением. Зачем новую тему создавать?
0
AndreyVorobey
150 / 150 / 86
Регистрация: 14.04.2015
Сообщений: 598
30.06.2015, 10:07 #4
Уважаемый, OwenGlendower, где ошибка в моём примере?) У меня всё отлично сохраняется
C#
1
2
3
4
WebClient webClient = new WebClient();
            string link = @"https://content.onliner.by/news/2015/06/default/eced4ca3ccbb8618fe5ef2e6da42f825.jpg"; 
            string downloadFileName = System.IO.Path.GetFileName("1.jpg");
  webClient.DownloadFileAsync(new Uri(link), @"c:\Users\romanenko\Desktop\" + downloadFileName);
0
OwenGlendower
Супер-модератор
Эксперт .NET
8753 / 7757 / 3320
Регистрация: 17.03.2014
Сообщений: 15,258
Записей в блоге: 1
30.06.2015, 10:30 #5
AndreyVorobey, ошибка возникнет если попытаться обратиться к файлу 1.jpg сразу после вызова DownloadFileAsync. Скорее всего он не успеет скачаться.
0
30.06.2015, 10:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.06.2015, 10:30
Привет! Вот еще темы с решениями:

Скачивание нескольких файлов
Доброго времени суток!!! Нужно скачать по очереди несколько файлов по http,...

Скачивание файлов стало некорректно работать в отдельном потоке
В общем, был у меня код, который скачивал файлы по списку, переделал его для...

Реализовать класс, который будет с помощью FileDownloader-а реализовывать фоновое скачивание файлов
Всем привет. Недавно хотел устроится на работу и работодател отправил мне...

Ишу рабочий пример клиент-серверного приложения для передачи файлов по сети
Сабж. Если у кого-то имеется подобное или кто-нибудь где-нибудь видел,...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru