【问题标题】:Download a file from website, without specific file url从网站下载文件,没有特定的文件 url
【发布时间】:2019-10-05 19:27:06
【问题描述】:

我一直在使用 web 做一个项目,但遇到了一个问题。我需要下载一个文件,但是文件是在访问时自动下载的,所以没有给出实际的 URL。

我试过WebClient,但我意识到我不能那样做。 我也尝试过使用WebBrowser,但我面临另一个问题。文件已下载,但是,

1) 有一个保存文件的对话框。

2) 我不知道文件下载到哪里。

3) WebBrowser 下载事件不使用特殊的EventArgs

WebBrowser wb = new WebBrowser();
wb.Navigate("https://thunderstore.io/package/download/Raus/IonUtility/1.0.1/")

private void wb_FileDownload(object sender, EventArgs e)
{
    // The download code, but no download path
}

有什么办法可以解决这个问题吗?

【问题讨论】:

标签: c# webclient


【解决方案1】:

试试这个方法:

var client = new HttpClient
{
    BaseAddress = new Uri("https://thunderstore.io/")
};

var response = await client.GetStreamAsync("package/download/Raus/IonUtility/1.0.1/");

var fn = Path.GetTempFileName();

using (var file = File.OpenWrite(fn))
{
    await response.CopyToAsync(file);
}

最后fn 将保存本地文件名。没有对话框,您可以完全控制。

【讨论】:

  • @SuPEr_Toaster_Official 由于您尚未共享更多应用程序,请阅读此内容以正确采用 HttpClient 的用法到您的用例:aspnetmonsters.com/2016/08/2016-08-27-httpclientwrong TL;DR;只要基地址相同,您就可以并且应该重用客户端实例。如果这是一次性案例,您应该在其周围加上using
猜你喜欢
  • 1970-01-01
  • 2011-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多