Mam aplikację WinForms, która ładuje pliki Excel do analizy. Obecnie, aby otworzyć plik Excela, plik nie może być już otwarty w programie Excel, w przeciwnym razie generowany jest wyjątek FileIOException, gdy próbuję załadować plik.Jak otworzyć plik otwarty w innej aplikacji
Chciałbym zezwolić mojej aplikacji na odczyt w pliku, nawet jeśli jest otwarty w programie Excel, zamiast zmuszać użytkownika do zamknięcia arkusza. Zwróć uwagę, że dana aplikacja musi jedynie odczytać plik, a nie pisać do niego.
Czy to możliwe?
Myślę, że flaga FileShare jest dla drugiego przypadku - kiedy chcesz zezwolić innym aplikacjom na dostęp do pliku – ChrisF
To z metadanych: "Zawiera stałe kontrolujące rodzaj dostępu inne obiekty System.IO.FileStream mogą mieć ten sam plik " – ChrisF
W przypadku przyszłych programów otwierających, FileShare.Read oznacza" przyszły program otwierający może otworzyć plik do odczytu ". W przypadku wcześniejszych programów otwierających FileShare.Read oznacza "otwórz ten plik tylko dla mnie, jeśli ma już otwarte programy otwierające je tylko do odczytu". Dlatego właśnie należy używać FileShare.ReadWrite, ponieważ program Excel otwiera plik do zapisu. –