Форум программистов, компьютерный форум, киберфорум
RunningMan
Войти
Регистрация
Восстановить пароль
Оценить эту запись

Скачать файл из интернета

Запись от RunningMan размещена 26.08.2017 в 17:44

Не нашёл в .NET Core WebClient,
На смену ему есть HttpClient и можно скачать файл асинхронно:

C#
1
2
3
4
5
6
7
8
9
10
11
12
private static async Task DownloadFile(string inPath, string outPath )
        {
            var client = new HttpClient();     
            var bytesTask  =  client.GetByteArrayAsync(inPath);
            var bytes = await bytesTask;        
            File.WriteAllBytes(outPath, bytes);
        }
        static void Main(string[] args)
        {      
            DownloadFile("http://all-muzon.cc/where-it/here-it/song2.mp3",
                                   "/mymusic/song2.mp3").Wait();   
        }
Размещено в Без категории
Показов 3104 Комментарии 2
Всего комментариев 2
Комментарии
  1. Старый комментарий
    Аватар для OwenGlendower
    Вот так будет лучше
    C#
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    private static async Task DownloadFile(string inPath, string outPath )
    {
        using (var client = new HttpClient())
        using (var inStream = await client.GetStreamAsync(inPath))
        using (var outStream = File.Create(outPath))
        {
            await inStream.CopyToAsync(outStream);
        }
    }
    Таким образом мы не читаем весь файл целиком в память и пользуемся преимуществами асинхронных операций и для сетевого запроса и для работы с файлами.
    Запись от OwenGlendower размещена 27.08.2017 в 13:35 OwenGlendower вне форума
  2. Старый комментарий
    Аватар для RunningMan
    OwenGlendower, спасибо.
    Запись от RunningMan размещена 27.08.2017 в 14:08 RunningMan вне форума
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru