将文件从 url 下载到 .Net Core 中的本地设备
Posted
技术标签:
【中文标题】将文件从 url 下载到 .Net Core 中的本地设备【英文标题】:Download files from url to local device in .Net Core 【发布时间】:2017-08-30 10:17:18 【问题描述】:在 .Net 4.0 中,我使用 WebClient 从 url 下载文件并将它们保存在本地驱动器上。但我无法在 .Net Core 中实现同样的目标。
谁能帮我解决这个问题?
【问题讨论】:
你确定 asp.net-core-mvc 是正确的标签吗?从您的问题来看,您似乎在谈论客户端软件。无论哪种方式:如果要下载文件,请使用HttpClient
。
【参考方案1】:
WebClient
在.NET Core
中不可用。 (更新:来自2.0)因此在System.Net.Http
中使用HttpClient
是强制性的:
using System.Net.Http;
using System.Threading.Tasks;
...
public static async Task<byte[]> DownloadFile(string url)
using (var client = new HttpClient())
using (var result = await client.GetAsync(url))
if (result.IsSuccessStatusCode)
return await result.Content.ReadAsByteArrayAsync();
return null;
【讨论】:
对于读者,请注意您不应该以这种方式使用 HttpClient。一种选择是让 HttpClientFactory 处理 Httpclient 对象的生命周期。阅读more【参考方案2】:WebClient
可从.net core 2.0 获得
var wc = new System.Net.WebClient();
wc.DownloadFile( URL, @"c:\temp\myfile.txt");
【讨论】:
很高兴知道,当您真的想下载文件而不是使用内容时。 如果远程文件无法访问,或者 URL 错误会怎样?有没有办法知道文件是否下载成功? @Stian 抛出异常 @Leandro:为什么? 你有DownloadFileAsync
方法(这是.net核心)以上是关于将文件从 url 下载到 .Net Core 中的本地设备的主要内容,如果未能解决你的问题,请参考以下文章
使用 ASP.NET CORE 中的链接从 Cloudinary 下载 pdf 文件
无法将文件从 React 上传到具有多个对象的 .net Core 5
是否可以将 & 分隔的无密钥 url 参数提取到 .NET Core 中的操作方法参数中?
在.net core 6的导航栏中显示用户个人资料图片[关闭]