C #: Открытие Word-файла в FileStream для чтения, когда он открыт в Word - PullRequest
4 голосов
/ 09 сентября 2010

Я пытаюсь открыть файл Word для чтения с помощью FileStream в C #. Я взломал быстрый пример приложения, которое состоит из текстового поля и кнопки для запуска создания потока. Пример кода для открытия файла следующий:

if (File.Exists(this.TxtPath.Text))
{
    Stream s = new FileStream(this.TxtPath.Text,
    FileMode.Open, FileAccess.Read,
    FileShare.Read);
}

Когда я пытаюсь открыть файл Word, который уже открыт в Word, я получаю System.IO.Exception, в котором говорится, что файл уже открыт другим процессом и не может быть открыт.

Когда я пытаюсь открыть тот же файл в Notepad ++, когда он открыт в Word, он работает без проблем. Так что в принципе это должно быть возможно.

Есть что-то, что я упустил из виду?

Быстрое редактирование: Я использую Word 2007 и VisualStudio 2008, если это поможет. Версия .NET Framework - 3.5

Ответы [ 2 ]

8 голосов
/ 09 сентября 2010

Попробуйте FileShare.ReadWrite.Объяснение на http://msdn.microsoft.com/en-us/library/system.io.fileshare.aspx подразумевает, что использование FileShare.Read конфликтует с другими процессами, пытающимися писать.

2 голосов
/ 09 сентября 2010

Попробуйте установить FileShare на ReadWrite.Word, скорее всего, заблокировал файл, который не позволяет вам его заблокировать.

...