Jap das ist möglich und zwar indem du einen AsyncCompletedEventHandler an das DownloadFileCompleted anhängst, das sieht dann ungefähr so aus:
static void Main(string[] args)
{
string url = "https://www.google.de/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png";
WebClient _client = new WebClient();
_client.DownloadFileCompleted += DownloadFileCompleted(path);
_client.DownloadFileAsync(new Uri(url), path);
}
public static AsyncCompletedEventHandler DownloadFileCompleted(string downloadFileName)
{
Action<object, AsyncCompletedEventArgs> action = (sender, e) =>
{
var filename = downloadFileName;
if (e.Error != null)
{
throw e.Error;
}
};
return new AsyncCompletedEventHandler(action);
}
Dem AsyncCommandEventHandler übergibst du den filename direkt mit, dadurch kann er den dann in der Implementierung abfragen. Du kannst sogar schauen, ob ein Fehler aufgetreten ist.
Mehr Informationen unter:
https://docs.microsoft.com/de-de/dotnet/api/system.net.webclient.downloadfilecompleted?view=netcore-3.1