W programie tworze plik *.txt i następnie zapisuję do niego z wykorzystaniem
StreamWriter sw = new StreamWriter("plik.txt", true);
Program dopisuje do tego pliku kolejne dane podawane przez użytkownika. Moje pytanie jest takie: czy istnieje możliwość, aby kodzie programu ustawić opcje dla tego pliku tak, aby mógłbyć modyfikowany tylko przez program, a z poziomu systemu tylko przeglądany?
Uprawnienia ustawia się za pomocą flagi FileShare, czyli robisz np.:
FileStream stream = new FileStream("plik.txt", FileMode.Open, FileAccess.Write, FileShare.Read);
StreamWriter writer = new StreamWriter(stream, Encoding.UTF8);
Dodam tylko, że to jak szybko zobaczysz zmiany wprowadzone w pliku przez program, zależy od tego jak duży jest bufor na dane (domyślnie 8 KB - można zmienić) lub czy wywołujesz ręcznie Flush(). Jeśli nie wywołujesz ręcznie Flush(), to dane w pliku pojawią się dopiero po zapełnieniu bufora lub po zamknięciu stream-a za pomocą Close(). Jeśli wywołujesz ręcznie Flush(), to zmiany pojawią się od razu (ręczne wywoływanie Flush() wpływa jednak niekorzystnie na wydajność aplikacji).