从网站下载文件,没有特定的文件URL

时间:2019-10-05 11:07:09

标签: c# webclient

我一直在使用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
}

任何想法我该如何解决这个问题?

1 个答案:

答案 0 :(得分:4)

尝试这种方法:

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将保留本地文件名。没有对话,您可以完全控制。