Процесс C # не может получить доступ к файлу, потому что он используется другим процессом - PullRequest
2 голосов
/ 28 февраля 2011

Пожалуйста, помогите мне с проблемой, с которой я столкнулся.

Я пишу импортер в C # для файла XML.Каждый раз, когда я запускаю импорт, мне нужно загрузить XML-файл с URL-адреса.

Я записал следующий код для его загрузки:

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 Ответ

5 голосов
/ 28 февраля 2011

Похоже, что ваша асинхронная операция загрузки еще не завершена, когда вы пытаетесь получить доступ к свойствам.Вы удостоверились, что загрузка завершена перед доступом к файлу?

Вы можете получить доступ к файлу в событии DownloadFileCompleted.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...