Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i
Telekomunikacji
Instytut Sterowania i Systemów Informatycznych Platforma .Net
Kierunek: Informatyka Laboratorium nr 3
OBSŁUGA PLIKÓW W JĘZYKU C#
Prowadzący: dr inż. Marek Kowal
Zakres ćwiczeń:
1. Strumienie w bibliotece .Net Framework 2. Operacje na plikach.
3. Operacje na strukturze systemu plików.
Wstęp teoretyczny:
Plik jest to skończony zbiór informacji przechowywana na nośniku dyskowym. Aby skorzystać z pliku należy wykonać procedurę jego otwarcia. Otwarcie powoduje utworzenie uchwytu do pliku. Podczas otwarcia musimy określić, w jaki sposób będziemy z niego korzystać.
Uzyskujemy to przez ustawienie pewnych atrybutów, przy pomocy typów wyliczeniowych zdefiniowanych w przestrzeni nazw System.IO:
System.IO.FileAccess - definiuje tryb dostępu do pliku
FileAccess.Read - dane mogą być czytane z pliku
FileAccess.Write - dane mogą być zapisywane do pliku
FileAccess.ReadWrite - dane mogą być czytane z i zapisywane do pliku
System.IO.FileShare - definiuje zasady współużytkowania pliku z innymi programami (procesami):
FileShare.Delete pozwala inny programom skasować plik
FileShare.Inheritable - uchwyt pliku jest dostępny dla procesów potomnych
FileShare.Read - pozwala otworzyć powtórnie plik, ale tylko do zapisu
FileShare.ReadWrite - pozwala powtórnie otworzyć plik do zapisu lub odczytu
FileShare.Write - pozwala powtórnie otworzyć plik, ale tylko do odczytu System.IO.FileMode - definiuje sposób otwarcia lub utworzenia pliku
FileMode.Append - otwiera plik w celu dopisywania do pliku, jeżeli żądany plik nie istnieje jest tworzony. Atrybut ten może pracować tylko w połączeniu z atrybutem FileAccess.Write.
FileMode.Create - otwiera plik do zapisu. W przypadku, gdy plik nie istnieje jest tworzony, jeżeli istnieje jest nadpisywany.
FileMode.CreateNew - otwiera plik do zapisu. W przypadku, gdy plik nie istnieje jest tworzony, jeżeli istnieje rzucany jest wyjątek.
FileMode.Open - otwiera plik do odczytu lub zapisu w zależności od atrybutu FileAccess. Jeżeli plik nie istnieje rzucany jest wyjątek.
FileMode.OpenOrCreate - otwiera plik do odczytu lub zapisu w zależności od atrybutu FileAccess. Otwiera istniejący plik, jeżeli plik nie istnieje jest tworzony.
FileMode.Truncate - otwiera plik do zapisu. Otwiera istniejący plik kasując jego zawartość
Aby skorzystać z pliku, musi zostać skojarzony z nim obiekt, który reprezentuje pojecie strumienia danych. Strumień jest to pewna warstwa abstrakcyjna, która umożliwia nam zapis i odczyt danych, nie tylko z pliku, ale z różnych źródeł. Na strumieniu mamy zdefiniowane pewne operacje, chociaż ich dostępność zależy od typu strumienia i sposobu jego otwarcia.
Do operacji zdefiniowanych na strumieniu należą:
czytanie danych (reading) - pobieranie danych ze strumienia i umieszczanie ich w pewnej strukturze danych
zapis danych (writting) - wstawienie danych do strumienia z pewnej struktury danych
ustawienie bieżącej pozycji w strumieniu (seeking) Zadania:
1. Zapoznaj się ze wstępem teoretycznym dotyczącym obsługi plików oraz strumieni w języku C# (prowadzący zajęcia udostępni materiały Microsoft IT Academy)
2. Napisz program szyfrujący plik. Pogram działa w następujący sposób.
Pobiera nazwę pliku do szyfrowania.
Pobiera nazwę pliku zaszyfrowanego.
Pobiera wartość klucza szyfrującego.
Wczytuj po jednym bajcie z pliku źródłowego, następnie wykonaj operacje XOR na kluczu i wartości wczytanej. Wynik wyrażenia zapisz do pliku zaszyfrowanego. Czynność powtarzana jest do osiągnięcia końca pliku.
Rozszyfrowanie pliku odbywa się algorytmem dokładnie takim samym jak jego szyfrowanie.
3. Napisz program, który będzie tworzył bazę kontaktów do znajomych przechowywana na dysku.
Literatura:
1. Włodarczyk M.: ITA-104 Wprowadzenie do programowania, 2007.
2. Chappell D.: Zrozumieć platformę .NET, Helion, 2007.
3. Duffy J.: .NET Framework 2.0, Zaawansowane programowanie, Helion, 2007.
4. Michelsen K.: Język C#. Szkoła programowania, Helion, 2007 5. Liberty J.: C# 2005. Wprowadzenie, O'Reilly, 2007