Spędziłem sporo czasu zastanawiając się, jak to zrobić, ale nie znalazłem żadnego przydatnego rozwiązania.Jak ręcznie Zablokować plik dla innych aplikacji
Oto, co chcę zrobić. Generuję ogromny plik binarny w mojej aplikacji. Trudne jest to, że proces ten wymaga od mnie zamknięcia okna FileStream. Problem polega na tym, że czasami inne aplikacje (np. Mój skaner antywirusowy) używają tego krótkiego momentu, w którym plik nie jest już zablokowany, aby zablokować sam plik. lub inne aplikacje, takie jak Dropbox itp.
Powoduje to, że następnym razem, gdy trzeba otworzyć strumień plików, oznacza to, że jest zablokowany przez inny proces. Wszystko to zdarza się bardzo rzadko, ale w dalszym ciągu jest denerwujące. I nawet jeśli nadal otrzymuję dostęp do pliku, nadal nie chcę, aby np. Dropbox przesyłał ten plik do momentu jego zakończenia (co może potrwać kilka minut).
Potrzebna jest możliwość ręcznego zablokowania pliku, aby moja aplikacja mogła nadal otwierać strumienie plików w tym pliku, ale żadna inna aplikacja nie może działać, dopóki nie odblokuję go ręcznie.
Wyobrażam coś takiego w Pseudokod:
File.Lock(filepath);
//... do something that opens and closes filestreams on this file
File.Unlock(filepath);
Czy istnieje sposób to zrobić? Rozwiązanie "utrzymuj otwarty strumień plików" jest nieprawidłowe. Dokładnie staram się tego uniknąć, więc miej to na uwadze.
zmodyfikowałem swój kod, aby być bardziej jasne, co oczekujesz. –
Jednym słowem: 'IsolatedStorageFile' – avishayp
Czy możesz zmienić go na plik RO, a następnie zmienić go z powrotem na RW w celu edycji? – Paparazzi