Как вы пытаетесь открыть файл?
Если вы пытаетесь открыть его для чтения / записи, вы получите исключение. Если вы пытаетесь открыть его только для чтения, у вас должно быть все в порядке.
var file = File.Open("file.xls", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
Это будет работать только в том случае, если Excel открыл файл с FileShare.Read
, установленным для того, чтобы другие приложения (т.е. ваши) имели доступ к файлу. Если это не установлено, Excel откроет файл с монопольным доступом. Примечание: я не думаю, что это так, так как вы можете открыть файл Excel (в Excel) для чтения, если кто-то другой открыл его для редактирования.
ОБНОВЛЕНИЕ - ОК. Я не проверял это должным образом до комментариев Дарина. Вам нужен флаг FileShare.ReadWrite
, несмотря на помощь, указывающую, что он предназначен для последующих открывателей файлов. Даже FileShare.Read
не достаточно хорош, что я считаю даже более странным.