Скачать файл с веб-сайта без указания конкретного URL-адреса - PullRequest
3 голосов
/ 05 октября 2019

Я занимался проектом с использованием сети и столкнулся с проблемой. Мне нужно скачать файл, но файл автоматически загружается при посещении, поэтому фактический 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 Ответ

4 голосов
/ 05 октября 2019

Попробуйте этот подход:

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 будет содержать локальное имя файла. Диалога нет, и у вас есть полный контроль.

...