[C#] Zabezpieczenie pliku


(Wojtekt89) #1

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?


(nnick) #2

Nie. Możesz co najwyżej plik zaszyfrować.


(Tomek Matz) #3

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).


(Wojtekt89) #4

Dzięki za pomoc.