Приложение для браузера.
У меня есть стандартный код для открытия диалога открытия файла, а затем чтения файла с помощью dlg.File.OpenRead()
.Теперь проблема возникает, если этот файл открывается в Excel.Открытие не удалось, потому что внутренне оно делает следующее:
public FileStream OpenRead()
{
new FileIOPermission(FileIOPermissionAccess.Read, this.FullPath).Assert();
return new FileStream(this.FullPath, FileMode.Open, FileAccess.Read, FileShare.Read, 4096, false);
}
Для доступа к файлу, открытому в Excel, вы должны использовать FileShare.ReadWrite
.Хорошо, есть метод Open
, поэтому я пишу:
dlg.File.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite)
И он выдает ошибку: «Файловая операция не разрешена. Доступ к пути« xyz »запрещен».Я проверил, что Open
делает внутри:
public FileStream Open(FileMode mode, FileAccess access, FileShare share)
{
return new FileStream(this.FullPath, mode, access, share);
}
Почти то же самое, за исключением запроса FileIOPermission
, который, в свою очередь, является внутренним, и вы не можете использовать его в коде.
Так чтовопрос, как заставить это Open
работать?Или как открыть файл с помощью ReadWrite
share?