У меня была такая же проблема, и я нашел этот вопрос и ответы здесь действительно полезными.
Но ответы здесь используют старый WebRequest-класс , который немного устарел, он не поддерживает асинхронную загрузку. Поэтому я хотел использовать более современный способ сделать это с HttpClient . Вот пример с небольшим вспомогательным классом, чтобы проверить, существует ли файл:
using System.Net.Http;
using System.Threading.Tasks;
class HttpClientHelper
{
private static HttpClient _httpClient;
public static async Task<bool> DoesFileExist(string url)
{
if (_httpClient == null)
{
_httpClient = new HttpClient();
}
using (HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Head, url))
{
using (HttpResponseMessage response = await _httpClient.SendAsync(request))
{
return response.StatusCode == System.Net.HttpStatusCode.OK;
}
}
}
}
Использование:
if (await HttpClientHelper.DoesFileExist("https://www.google.com/favicon.ico"))
{
// Yes it does!
}
else
{
// No it doesn't!
}