Доступ к файлу только для чтения независимо от блокировок (C #) - PullRequest
7 голосов
/ 10 мая 2011

Как мне открыть (используя c #) файл, который уже открыт (например, в MS Word)? Я думал, если я открою файл для чтения, например,

FileStream f= new FileStream('filename', FileMode.Open, FileAccess.ReadWrite);

Я должен добиться успеха, но я получаю исключение:

"процесс не может получить доступ к файлу потому что он заперт ... "

Я знаю, что должен быть способ прочитать файл, независимо от того, какие блокировки на нем установлены, потому что я могу использовать проводник Windows, чтобы скопировать файл или открыть его с помощью другой программы, такой как Блокнот, даже когда он открыт в WORD.

Однако, похоже, ни один из классов File IO в C # не позволяет мне это делать. Почему?

Ответы [ 2 ]

7 голосов
/ 10 мая 2011

Вы хотите установить FileAccess = Read и FileShare = ReadWrite. Вот отличная статья об этом (вместе с объяснением почему):

http://coding.infoconex.com/post/2009/04/How-do-I-open-a-file-that-is-in-use-in-C.aspx

1 голос
/ 10 мая 2011

Ваш код использует флаг FileAccess.Read * Write *.Попробуйте просто прочитать.

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