Use the overload method WebClient.DownloadFileAsync(Uri address, string fileName, object userToken)
, you can pass the file name as the userToken and then access it in the DownloadFileCompleted handler.
userToken: A user-defined object that is passed to the method invoked when the asynchronous operation completes.
http://msdn.microsoft.com/en-us/library/ms144197(v=vs.110).aspx