Webclient C#完成异步下载后获取filePath

问题描述

我有这种方法

public void downloadClip()
        {
            using (WebClient wc = new WebClient())
            {
                //Download
                wc.DownloadFileCompleted += Wc_DownloadFileCompleted;
                string file_name_ender = @"My\Path";
                wc.DownloadFileAsync(new System.Uri(@downloadUri),file_name_ender);
            }
        }

然后我已下载了DownloadFileCompleted:

private void Wc_DownloadFileCompleted(object sender,AsyncCompletedEventArgs e)
        {
            //I need to get where file was downloaded to
        }

然后,我需要进入该方法字符串,里面显示了我下载文件的位置。基本上是我的file_name_ender

感谢您的帮助。

解决方法

使用第二种重载方法:

wc.DownloadFileAsync(uri,file_name_ender,file_name_ender);

然后您可以在事件中从UserState属性获取值:

private void Wc_DownloadFileCompleted(object sender,AsyncCompletedEventArgs e)
{
    var filename = (string)e.UserState;
}