File.Move и WebBrowser - PullRequest
       3

File.Move и WebBrowser

1 голос
/ 10 ноября 2011

Относительно новый для C # - TIA для любой помощи.

Создание приложения окна с веб-браузером.Использование browser.Navigate("myfilestring") для доступа к локальному файлу (PDF, что это может иметь значение).После просмотра файла я хочу иметь метод File.Move() файла из одного каталога в другой.У меня проблема в том, что Move возвращает исключение ввода-вывода, в котором говорится, что файловая операция не может быть выполнена, поскольку файл используется другим процессом.

До вызова Move I browser.Navigate("someotherfilestring") inнадежды на освобождение блокировки «файл используется» для исходного файла ... не помогает.

Я также поместил рекурсивную попытку / перехват вокруг Move и поместил thread.sleep(50) вЯ надеюсь, что это просто проблема с синхронизацией ... тоже не поможет.

Однако, если я добавлю MessageBox.Show() в catch - исключение ввода-вывода перехватит один раз - отобразится окно сообщения, а затем нажатие кнопки ОК приводит к тому, что файл не загружается, и операция File.Move() продолжается.Я бы предпочел, чтобы окно не появлялось в качестве решения.

Любые подсказки о том, как я могу программно распаковать файл, чтобы позволить операции File.Move() продолжаться?

Еще раз спасибо.

1 Ответ

2 голосов
/ 10 ноября 2011

Я бы предложил структурировать вашу программу таким образом, чтобы вы могли избежать проблемы все вместе:

  • При переходе к файлу сначала используйте File.Copy(), чтобы скопировать файл во временную папку с уникальным именем файла.
  • Перейдите к временному файлу
  • Когда вы переходите к File.Move(), все должно работать нормально, поскольку теперь заблокирован временный файл, а не исходный файл.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...