C#进程无法访问文件,因为它正由另一个进程使用

时间:2011-02-28 09:58:56

标签: c# asynchronous webclient-download

请帮助我解决我面临的问题。

我在C#中为xml文件编写了一个导入器。每次运行导入时,我都需要从URL下载XML文件。

我已经下载了以下代码:

var xmlPath = @"C:\Desktop\xxx.xml";
public void DownloadFile(string url, string saveAs)
{
    using(var webClient = new WebClient())
    {
        webClient.DownloadFileAsync(new Uri(url), saveAs);
    }
}

_downloader.DownloadFile(Config.FeedUrl, xmlPath);调用该方法。 Url位于配置文件(Config.FeedUrl)。

然后,当我尝试GetProperties(xmlPath);时,我得到了异常“进程无法访问该文件,因为该文件正由另一个进程使用。

我确定目的地存在,但我不确定为什么会收到此错误。

有人可以帮帮我吗?

谢谢

1 个答案:

答案 0 :(得分:5)

当您尝试访问属性时,看起来您的异步下载操作尚未完成。您是否确保在访问文件之前完成下载?

您可以在DownloadFileCompleted事件中访问该文件。

http://msdn.microsoft.com/en-us/library/system.net.webclient.downloadfilecompleted.aspx