none
Как определить что файл занят другой программой без генерации IOException ? RRS feed

  • Вопрос

  • Отслеживаю файлы в папке с помощью FileSystemWatcher, но события генерируются раньше полной записи файла.

    Сейчас использую для определения окончания загрузки файла захват его с FileShare.None и обработкой IOException в случае неудачи.

    Есть ли другие способы проверки занятости файла, чтобы избежать постоянной генерации IOException?

    • Перемещено Siddharth Chavan 1 октября 2010 г. 21:35 MSDN Forums Consolidation (От:Visual C#)
    25 марта 2010 г. 8:46

Все ответы

  • Существуют несколько способов, но в конечном счете всё сводится к проверке такого вида

    while(...) {

    try{..}

    catch(IOException){..}

    }

    Посмотрите здесь детальное объяснение от эксперта: 

    Please help - FileSystemWatcher Problem
    25 марта 2010 г. 10:57
  • Да проверкой такого вида я и пользуюсь. Но смущает тот факт, что по идеологии программирования, если ситуация не ошибочная, а предвиденная, то надо пользоваться проверками, а не обработкой ошибок. И это, для меня, пока единственный случай, когда не могу найти такую проверку.
    25 марта 2010 г. 12:20