Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
Język C# Adam.Czajka@wsnhid.pl Copyright, 2004 © Adam Czajka
2
Plan Wstęp Przydział pamięci Funkcje - posłańców Tablice Pliki
3
Copyright, 2004 © Adam Czajka Język C# Zarządzanie pamięcią Obiekty ostatnio alokowane będą najpewniej zwalniane jako pierwsze. Obiekty ostatnio alokowane będą najpewniej zwalniane jako pierwsze. Obiekty, które jak dotąd długo żyły nie będą prawdopodobnie także i w najbliższym czasie zwalniane. Obiekty, które jak dotąd długo żyły nie będą prawdopodobnie także i w najbliższym czasie zwalniane. Obiekty alokowane razem będą najprawdopodobniej razem zwalniane. Obiekty alokowane razem będą najprawdopodobniej razem zwalniane.
4
Copyright, 2004 © Adam Czajka Język C# Zarządzanie pamięcią Zarządzanie pamięcią (ang. Garbage Collection) jest wielopokoleniowe Zarządzanie pamięcią (ang. Garbage Collection) jest wielopokoleniowe Pokolenie 0 – mała ale szybko dostępna pamięć, mieści się w pamięci podręcznej L2 Pokolenie 0 – mała ale szybko dostępna pamięć, mieści się w pamięci podręcznej L2 Pamięć pokolenia 0 to prosta tablica bajtów Pamięć pokolenia 0 to prosta tablica bajtów
5
Copyright, 2004 © Adam Czajka Język C# Zarządzanie pamięcią Obiekty pokolenia 0, które przetrwały zbieranie nieużytków są umieszczane w pamięci pokolenia 1 Obiekty pokolenia 0, które przetrwały zbieranie nieużytków są umieszczane w pamięci pokolenia 1 Obiekty pokolenia 1, które przetrwały zbieranie nieużytków są umieszczane w pamięci pokolenia 2 Obiekty pokolenia 1, które przetrwały zbieranie nieużytków są umieszczane w pamięci pokolenia 2
6
Copyright, 2004 © Adam Czajka Język C# Zarządzanie pamięcią – klasa GC GC.SupressFinalize(this); GC.Collect(); // pełna optymalizacja GC.Collect(0); // optymalizacja na poziomie 0 int genNum = GC.GetGeneration(this)
7
Copyright, 2004 © Adam Czajka Język C# Zarządzanie pamięcią – metoda Dispose class ResEx : IDisposable { ~ResEx() ~ResEx() { Dispose(false); Dispose(false); } public void Dispose() public void Dispose() { Dispose(true); Dispose(true); }
8
Copyright, 2004 © Adam Czajka Język C# Zarządzanie pamięcią – metoda Dispose protected void Dispose(bool disposing) protected void Dispose(bool disposing) { if (disposing) if (disposing) { GC.SupressFinalize(this); // Zwolnij obiekty zarządzalne { GC.SupressFinalize(this); // Zwolnij obiekty zarządzalne } // Zwolnij zewnętrzne zasoby // Zwolnij zewnętrzne zasoby.......... }........}
9
Copyright, 2004 © Adam Czajka Język C# Posłańcy (ang. Delegates) funktory funktory obsługa zdarzeń obsługa zdarzeń Funkcje delegacyjne są wykorzystywane jako :
10
Copyright, 2004 © Adam Czajka Język C# Posłańcy (ang. Delegates) class Sortownica { public delegate bool Kolejnosc(object o1, object o2); public void Sortuj(Array tab, Kolejnosc fun) { int i, j; for (j=0; j<tab.Length-1; j++) for (j=0; j<tab.Length-1; j++) for (i=j+1; j<tab.Length; j++) { if (fun(tab.GetValue(j), tab.GetValue(i)) if (fun(tab.GetValue(j), tab.GetValue(i)) { //zamień kolejność //zamień kolejność } }}
11
Copyright, 2004 © Adam Czajka Język C# Posłańcy (ang. Delegates) public Sort { bool Porownaj_Int(object o1, object o2) bool Porownaj_Int(object o1, object o2) { int liczba1 = (int)o1; int liczba1 = (int)o1; int liczba2 = (int)o2; int liczba2 = (int)o2; return liczba1 < liczba2; return liczba1 < liczba2; }........ Funkcja porównująca dwa obiekty typu int
12
Copyright, 2004 © Adam Czajka Język C# Posłańcy (ang. Delegates).............................. static int [] tab = {9, 8, 3, 1, 4, 7}; static int [] tab = {9, 8, 3, 1, 4, 7}; static void Test() static void Test() { Sortownica s = new Sortownica(); Sortownica s = new Sortownica(); Sortownica.Kolejnosc fun = new Sortownica.Kolejnosc(PorownajInt); Sortownica.Kolejnosc fun = new Sortownica.Kolejnosc(PorownajInt); s.Sortuj(tab, fun); s.Sortuj(tab, fun); }}
13
Copyright, 2004 © Adam Czajka Język C# Posłańcy (ang. Delegates) - zdarzenia Obiektowość - definicja Abstrakcja - proceduralna - danych Hermetyzacja (określenie poziomów dostępu do obiektu) Dziedziczenie Porozumiewanie się poprzez komunikaty
14
Copyright, 2004 © Adam Czajka Język C# Posłańcy (ang. Delegates) - zdarzenia Obiektowość - definicja Abstrakcja - proceduralna - danych Hermetyzacja (określenie poziomów dostępu do obiektu) Dziedziczenie Porozumiewanie się poprzez komunikaty
15
Copyright, 2004 © Adam Czajka Język C# Posłańcy (ang. Delegates) - zdarzenia Upraszczają sposób notyfikacji o zdarzeniach Upraszczają sposób notyfikacji o zdarzeniach Mają ściśle określony model informowania (1 -> wielu) Mają ściśle określony model informowania (1 -> wielu) Zapewniają komunikację jednokierunkową Zapewniają komunikację jednokierunkową Posłańcy obsługujący zdarzenia:
16
Copyright, 2004 © Adam Czajka Język C# Posłańcy (ang. Delegates) - zdarzenia public class MediaEventArgs : EventArgs { public MediaEventArgs(bool _inserted) { inserted = _inserted; } public bool Inserted { get { return inserted; } } bool inserted = false; } Atrybuty komunikatu o zdarzeniu
17
Copyright, 2004 © Adam Czajka Język C# Posłańcy (ang. Delegates) - zdarzenia public class MediaPlayer { public delegate void MediaChangedHandler(object sender, MediaEventArgs eM); public event MediaChangedHandler OnMediaChangedHandler; public void AddHandler(MediaChangedHandler handler) { OnMediaChangedHandler += handler; } protected void OnMediaChanged(MediaEventArgs eM) { if (OnMediaChangedHandler != null) OnMediaChangedHandler(this, eM); } Dopisanie odbiorcy komunikatów
18
Copyright, 2004 © Adam Czajka Język C# Posłańcy (ang. Delegates) - zdarzenia public void TestMedia() {....... if (inserted) if (inserted) { MediaEventArgs args = new MediaEventArgs(true); OnMediaChanged(args); MediaEventArgs args = new MediaEventArgs(true); OnMediaChanged(args); } else else { MediaEventArgs args = new MediaEventArgs(false); OnMediaChanged(args); MediaEventArgs args = new MediaEventArgs(false); OnMediaChanged(args); }...................... }} Wysłanie komunikatu
19
Copyright, 2004 © Adam Czajka Język C# Posłańcy (ang. Delegates) - zdarzenia class Komputer { MediaPlayer DVD; MediaPlayer DVD; void Start() void Start() { DVD = new MediaPlayer(); DVD = new MediaPlayer(); MediaPlayer.MediaChangedHandler handler = new MediaPlayer.MediaChangedHandler(OnMediaChanged); MediaPlayer.MediaChangedHandler handler = new MediaPlayer.MediaChangedHandler(OnMediaChanged); DVD.AddHandler(handler); DVD.AddHandler(handler);.................. }................ Zadeklarowanie odbiorcy komunikatów w obiekcie docelowym
20
Copyright, 2004 © Adam Czajka Język C# Posłańcy (ang. Delegates) - zdarzenia public void OnMediaChanged(object sender, MediaEventArgs eM) public void OnMediaChanged(object sender, MediaEventArgs eM) { if (eM.Inserted) if (eM.Inserted) {.................. } else else {.................... } }................................ } //class Komputer Funkcja obsługi zdarzenia – odbiera komunikaty o zdarzeniu
21
Copyright, 2004 © Adam Czajka Język C# Posłańcy (ang. Delegates) - zdarzenia obiekt_1 obiekt_2 obiekt_3 MediaPlayer MediaPlayer Add_Handler
22
Copyright, 2004 © Adam Czajka Język C# Posłańcy (ang. Delegates) - zdarzenia obiekt_1 obiekt_2 obiekt_3 MediaPlayer MediaPlayer Add_Handler
23
Copyright, 2004 © Adam Czajka Język C# Posłańcy (ang. Delegates) - zdarzenia obiekt_1 obiekt_2 obiekt_3 MediaPlayer MediaPlayer Add_Handler
24
Copyright, 2004 © Adam Czajka Język C# Posłańcy (ang. Delegates) - zdarzenia obiekt_1 obiekt_2 obiekt_3 MediaPlayer MediaPlayer Zdarzenie
25
Copyright, 2004 © Adam Czajka Język C# Posłańcy (ang. Delegates) - zdarzenia obiekt_1 obiekt_2 obiekt_3 MediaPlayer MediaPlayer OnMediaChanged
26
Copyright, 2004 © Adam Czajka Język C# Posłańcy (ang. Delegates) - zdarzenia obiekt_1 obiekt_2 obiekt_3 MediaPlayer MediaPlayer OnMediaChanged
27
Copyright, 2004 © Adam Czajka Język C# Posłańcy (ang. Delegates) - zdarzenia obiekt_1 obiekt_2 obiekt_3 MediaPlayer MediaPlayer OnMediaChanged
28
Copyright, 2004 © Adam Czajka Język C# Tablice int [] liczby = { 1, 3, 2, 9, 5, 6, 7, 8, 4, 10 }; int pierwsza = liczby[1]; int l_elems = liczby.Length; Array.Clear(liczby, 0, liczby.Length); Array.Reverse(liczby); Array.Reverse(liczby, 5, 3); Array.Sort(liczby); 3
29
Copyright, 2004 © Adam Czajka Język C# Tablice int [] liczby = { 1, 3, 2, 9, 5, 6, 7, 8, 4, 10 }; int pierwsza = liczby[1]; int l_elems = liczby.Length; Array.Clear(liczby, 0, liczby.Length); Array.Reverse(liczby); Array.Reverse(liczby, 5, 3); Array.Sort(liczby); 10 10
30
Copyright, 2004 © Adam Czajka Język C# Tablice int [] liczby = { 1, 3, 2, 9, 5, 6, 7, 8, 4, 10 }; int pierwsza = liczby[1]; int l_elems = liczby.Length; Array.Clear(liczby, 0, liczby.Length); Array.Reverse(liczby); Array.Reverse(liczby, 5, 3); Array.Sort(liczby); { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
31
Copyright, 2004 © Adam Czajka Język C# Tablice int [] liczby = { 1, 3, 2, 9, 5, 6, 7, 8, 4, 10 }; int pierwsza = liczby[1]; int l_elems = liczby.Length; Array.Clear(liczby, 0, liczby.Length); Array.Reverse(liczby); Array.Reverse(liczby, 5, 3); Array.Sort(liczby); { 10, 4, 8, 7, 6, 5, 9, 2, 3, 1 }
32
Copyright, 2004 © Adam Czajka Język C# Tablice int [] liczby = { 1, 3, 2, 9, 5, 6, 7, 8, 4, 10 }; int pierwsza = liczby[1]; int l_elems = liczby.Length; Array.Clear(liczby, 0, liczby.Length); Array.Reverse(liczby); Array.Reverse(liczby, 5, 3); Array.Sort(liczby); { 1, 3, 2, 9, 5, 8, 7, 6, 4, 10 }
33
Copyright, 2004 © Adam Czajka Język C# Tablice int [] liczby = { 1, 3, 2, 9, 5, 6, 7, 8, 4, 10 }; int pierwsza = liczby[1]; int l_elems = liczby.Length; Array.Clear(liczby, 0, liczby.Length); Array.Reverse(liczby); Array.Reverse(liczby, 5, 3); Array.Sort(liczby); { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }
34
Copyright, 2004 © Adam Czajka Język C# class ArrayList { public virtual int Add(object value); public virtual int BinarySearch(object value); public virtual void Clear(); public virtual bool Contains(object item); public virtual int IndexOf(object value); public virtual void Insert(int index, object value); public virtual void Insert(int index, object value); public virtual void Remove(object obj); public virtual void RemoveAt(int index); public virtual void Reverse(); public virtual void Reverse(int index, int count); public virtual void Sort(); } Tablice dynamiczne
35
Copyright, 2004 © Adam Czajka Język C# Tablice dynamiczne class Tablica_Int { ArrayList tab; ArrayList tab; Tablica_Int() Tablica_Int() { tab = new ArrayList(); tab = new ArrayList(); } void Put(int idx, int val) void Put(int idx, int val) { tab.Insert(idx, val); tab.Insert(idx, val); }
36
Copyright, 2004 © Adam Czajka Język C# Tablice dynamiczne int Get(int idx) int Get(int idx) { int val = (int)tab[idx]; int val = (int)tab[idx]; return val; return val; } public int this[int idx] { get { return (int)tab[idx]; } set { tab.Insert(idx, value); } public int this[int idx] { get { return (int)tab[idx]; } set { tab.Insert(idx, value); } } }
37
Copyright, 2004 © Adam Czajka Język C# Tablice dynamiczne int Get(int idx) int Get(int idx) { int val = (int)tab[idx]; int val = (int)tab[idx]; return val; return val; } public int this[int idx] { get { return (int)tab[idx]; } public int this[int idx] { get { return (int)tab[idx]; } } }
38
Copyright, 2004 © Adam Czajka Język C# Zapis-odczyt plików FileStream FileStream Obsługa zapisu-odczytu plików : Przestrzeń nazw : System.IO
39
Copyright, 2004 © Adam Czajka Język C# Zapis-odczyt plików class FileStream { public FileStream(string path, FileMode mode); public FileStream(string path, FileMode mode, FileAccess fa); public override void Close(); public override void Flush(); public override int ReadByte(); public override long Seek(long offset, SeekOrigin origin); public override void WriteByte(byte value); public void SetLength(long lSize); public override long Length {get;} public override long Position {get; set;} public override bool CanRead{get;} public override bool CanWrite{get;} public override bool CanSeeek{get;} }
40
Copyright, 2004 © Adam Czajka Język C# Zapis-odczyt plików public FileStream(string path, FileMode mode, FileAccess fa, FileShare fs); FileMode.CreateNew FileMode.Create FileMode.Open FileMode.OpenOrCreate FileMode.Truncate FileMode.Append FileAccess.Read FileAccess.Write FileAccess.ReadWrite FileShare.None FileShare.Read FileShare.Write FileShare.ReadWrite
41
Copyright, 2004 © Adam Czajka Język C# Zapis-odczyt plików class FileStream { public override int ReadByte(); public override int Read(byte [] buf, int idx, int num); public override void WriteByte(byte value); public override int Write(byte [] buf, int idx, int num); }
42
Copyright, 2004 © Adam Czajka Język C# Zapis-odczyt plików void CopyFile(string ScrFileName, string DestFileName) { FileStream fileIn, fileOut; fileIn = new FileStream(ScrFileName, FileMode.Open, FileAccess.Read); fileOut = new FileStream(DestFileName, FileMode.Create, FileAccess.Write); fileIn.Seek(0, SeekOrigin.End); long len = fileIn.Position; fileIn.Seek(0, SeekOrigin.Begin); byte [] buffer = new byte[10000]; FileMode.Append, FileMode.Create, FileMode.CreateNew, FileMode.Open, FileMode.OpenOrCreate FileAccess.Read, FileAccess.Write, FileAccess.ReadWrite
43
Copyright, 2004 © Adam Czajka Język C# Zapis-odczyt plików try try { while (true) while (true) { int numRead = fileIn.Read(buffer, 0, 10000); int numRead = fileIn.Read(buffer, 0, 10000); if (numRead == 0) break; if (numRead == 0) break; fileOut.Write(buffer, 0, numRead); fileOut.Write(buffer, 0, numRead);} } finally finally { fileIn.Close(); fileIn.Close(); fileOut.Close(); fileOut.Close(); }}
44
Copyright, 2004 © Adam Czajka Język C# Zapis-odczyt plików BinaryWriter BinaryWriter BinaryReader BinaryReader Obsługa zapisu-odczytu plików binarnych : Przestrzeń nazw : System.IO
45
Copyright, 2004 © Adam Czajka Język C# class BinaryWriter { public BinaryWriter(Stream input); public virtual void Close(); public virtual void Flush(); public virtual long Seek(int offset, SeekOrigin origin); public virtual void Write(bool); public virtual void Write(byte); public virtual void Write(char); public virtual void Write(int); public virtual void Write(long); public virtual void Write(short); } Pliki binarne
46
Copyright, 2004 © Adam Czajka Język C# Pliki binarne class BinaryReader { public BinaryReader(Stream input); public virtual void Close(); public virtual byte ReadByte(); public virtual byte ReadBoolean(); public virtual char ReadChar(); public virtual short ReadInt16(); public virtual int ReadInt32(); public virtual long ReadInt64(); public virtual string ReadString(); }
47
Copyright, 2004 © Adam Czajka Język C# FileStream fileOut; BinaryWriter bw; fileOut = new FileStream(DestFileName, FileMode.Create, FileAccess.Write); bw = new BinaryWriter(fileOut); bw.Write((int)16);bw.Write((long)24);bw.Write(true);bw.Write(Test);bw.Flush();bw.Close() Pliki binarne
48
Copyright, 2004 © Adam Czajka Język C# FileStream fileIn; BinaryReader br; fileIn = new FileStream(DestFileName, FileMode.Open,FileAccess.Read); br = new BinaryReader(fileIn); int a = br.ReadInt32(); long b = br.ReadInt64(); bool c = br.ReadBoolean(); string s = br.ReadString(); br.Close() Pliki binarne
49
Copyright, 2004 © Adam Czajka Język C# class First { int licznik; int licznik; string nazwa; string nazwa; public First(int _l, string _n) public First(int _l, string _n) { licznik = _l; nazwa = _n; licznik = _l; nazwa = _n; } public int Licznik public int Licznik { get { return licznik; } get { return licznik; } }.......... Pliki binarne - serializacja
50
Copyright, 2004 © Adam Czajka Język C#.... public string Nazwa public string Nazwa { get { return nazwa; } get { return nazwa; } } public void Zapisz(BinaryWriter bw) public void Zapisz(BinaryWriter bw) { bw.Write(licznik); bw.Write(licznik); bw.Write(nazwa); bw.Write(nazwa); }.... Pliki binarne - serializacja
51
Copyright, 2004 © Adam Czajka Język C#.... public void Czytaj(BinaryReader br) public void Czytaj(BinaryReader br) { licznik = br.ReadInt32(); licznik = br.ReadInt32(); nazwa = br.ReadString(); nazwa = br.ReadString(); } public static First Odtworz(BinaryReader br) public static First Odtworz(BinaryReader br) { int l = br.ReadInt32(); int l = br.ReadInt32(); string s = br.ReadString(); string s = br.ReadString(); return new First(l, s); return new First(l, s); }} Pliki binarne - serializacja
52
Copyright, 2004 © Adam Czajka Język C# FileStream fileOut; BinaryWriter bw; fileOut = new FileStream(DestFileName, FileMode.Create, FileAccess.Write); bw = new BinaryWriter(fileOut); First f = new First(1, Text); f.Zapisz(bw);bw.Close(); Pliki binarne - serializacja
53
Copyright, 2004 © Adam Czajka Język C# FileStream fileIn; BinaryReader br; fileIn = new FileStream(SrcFileName, FileMode.Open, FileAccess.Read); br = new BinaryReader(fileIn); First f = new First(); f.Czytaj(br);br.Close(); Pliki binarne - serializacja
54
Copyright, 2004 © Adam Czajka Język C# FileStream fileIn; BinaryReader br; fileIn = new FileStream(SrcFileName, FileMode.Open, FileAccess.Read); br = new BinaryReader(fileIn); First f = First::Odtworz(br); br.Close(); Pliki binarne - serializacja
55
Copyright, 2004 © Adam Czajka Język C# Zapis-odczyt plików TextWriter (StreamWriter, StringWriter) TextWriter (StreamWriter, StringWriter) TextReader (StreamReader, StringReader) TextReader (StreamReader, StringReader) Obsługa zapisu-odczytu plików tekstowych : Przestrzeń nazw : System.IO
56
Copyright, 2004 © Adam Czajka Język C# Pliki tekstowe TextWriter StreamWriter StringWriter TextReader StreamReader StringReader
57
Copyright, 2004 © Adam Czajka Język C# Pliki tekstowe class StreamWriter { StreamWriter(Stream s); StreamWriter(Stream s, bool Append); StreamWriter(Stream s, bool Append, Encoding c); StreamWriter(Stream s, Encoding c); public int Write(....); public string WriteLine (....); public string Flush(....); public string Close(....); }
58
Copyright, 2004 © Adam Czajka Język C# Pliki tekstowe FileStream fStr = new FileStream(DestFileName, FileMode.Create, FileAccess.Write); StreamWriter fOut = new StreamWriter(fileOut); if (fOut != null) { fOut.Write(To jest); fOut.Write(To jest); fOut.WriteLine(tekst !); fOut.WriteLine(tekst !); fOut.Flush(); fOut.Flush(); fOut.Close(); fOut.Close();}
59
Copyright, 2004 © Adam Czajka Język C# Pliki tekstowe StreamWriter fOut = File.CreateText(nazwa_pliku); if (fOut != null) { fOut.Write(To jest); fOut.Write(To jest); fOut.WriteLine(tekst !); fOut.WriteLine(tekst !); fOut.Flush(); fOut.Flush(); fOut.Close(); fOut.Close();}
60
Copyright, 2004 © Adam Czajka Język C# Pliki tekstowe - kodowanie przestrzeń nazw: System.Text Encoding { Default {get; } Unicode {get; } //2-bytes (0xFF, 0xFE) -> 0xFEFF BigEndianUnicode {get; } // 2-bytes (0xFE, 0xFF) -> 0xFEFF UTF8 {get; } //1-6 non-zero bytes RFC 2279 UTF7 {get; } // RFC 2152 ASCII {get; } //bytes 0x00 – 0x7F }
61
Copyright, 2004 © Adam Czajka Język C# FileStream fStr = new FileStream(DestFileName, FileMode.Create, FileAccess.Write); Encoding enc = new UTF7Encoding(); StreamWriter fOut = new StreamWriter(fileOut, enc); if (fOut != null) { fOut.Write(To jest); fOut.Write(To jest); fOut.WriteLine(tekst !); fOut.WriteLine(tekst !); fOut.Flush(); fOut.Flush(); fOut.Close(); fOut.Close();} Pliki tekstowe - kodowanie
62
Copyright, 2004 © Adam Czajka Język C# Pliki tekstowe class StreamReader { public StreamReader(Stream s); public StreamReader(Stream s, Encoding e); public StreamReader(Stream s, bool Detect); public StreamReader(Stream s, Encoding e, bool Detect); public int Peek(); public int Read(); public int ReadBlock(char [] buffer, int idx, int count); public string ReadLine (); public string ReadToEnd(); }
63
Copyright, 2004 © Adam Czajka Język C# Pliki tekstowe FileStream fStr = new FileStream(SrcFileName, FileMode.Open, FileAccess.Read); StreamReader fIn = new StreamReader(fileIn); if (fIn != null) { string buf; string buf; while ((buf = fIn.ReadLine()) != null) while ((buf = fIn.ReadLine()) != null) { Console.WriteLine(buf); Console.WriteLine(buf); } fIn.Close(); fIn.Close();}
64
Copyright, 2004 © Adam Czajka Język C# FileStream fStr = new FileStream(SrcFileName, FileMode.Open, FileAccess.Read); Encoding enc = new UTF7Encoding; StreamReader fIn = new StreamReader(fileIn, enc); if (fIn != null) { string buf; string buf; while ((buf = fIn.ReadLine()) != null) while ((buf = fIn.ReadLine()) != null) { Console.WriteLine(buf); Console.WriteLine(buf); } fIn.Close(); fIn.Close();} Pliki tekstowe - kodowanie
65
Copyright, 2004 © Adam Czajka Język C# środowisko class Environment { public static string [] GetLogicalDrives(); public static string GetFolderPath(Environment.SpecialFolder s); public static string SystemDirectory; {get;} public static string CurrentDirectory; {get; set} }
66
Copyright, 2004 © Adam Czajka Język C# środowisko Environment.SpecialFolder { Programs, //StartMenu - Programs Personal, //Moje Dokumenty Favourites, Startup, SendTo, DesktopDirectory, Cookies, History, System, ProgramFiles, CommonProgramFiles }
67
Copyright, 2004 © Adam Czajka Język C# środowisko.... string [] dyski = Environment.GetLogicalDrives(); foreach (string s in dyski) { Console.WriteLine(s); Console.WriteLine(s);} Environment.CurrentDirectory = a:\\; string folder = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
68
Copyright, 2004 © Adam Czajka Język C# Atrybuty plików class DirectoryInfo { public DirectoryInfo(string path); public void Create(); public DirectoryInfo CreateSubdirectory(string path); public void Delete(); public void Delete(bool podkatalogi); void Refresh(); void MoveTo(string path);.....
69
Copyright, 2004 © Adam Czajka Język C# Atrybuty plików... bool Exists; {get;} string Name; {get;} string FullName; {get;} string Extenstion; {get;} DirectoryInfo Parent; {get;} DirectoryInfo Root; {get;} public DirectoryInfo[] GetDirectories(); public DirectoryInfo[] GetDirectories(string pattern); public FileInfo[] GetFiles(); public FileInfo[] GetFiles(string pattern); }
70
Copyright, 2004 © Adam Czajka Język C# Atrybuty plików class Directory { public static Exsits(string path); public static DirectoryInfo GetParent(string path); public static string GetDirectoryRoot (string path); public static DirectoryInfo CreateDirectory(string path); public static void Delete(string path); public static void Delete(string path, bool podkatalogi); public static void Move(string src, string dest);...
71
Copyright, 2004 © Adam Czajka Język C# Atrybuty plików... public static string[] GetDirectories(string path); public static string[] GetDirectories(string path, string pattern); public static string[] GetFiles(string path); public static string[] GetFiles(string path, string pattern); DateTime GetCreationTime(string path); DateTime GetLastAccessTime(string path); DateTime GetLastWriteTime(string path); void SetCreationTime(string path, DateTime dt); void SetLastAccessTime(string path, DateTime dt); void SetLastWriteTime(string path, DateTime dt); }
72
Copyright, 2004 © Adam Czajka Język C# Atrybuty plików.... string pliki [] = Directory.GetDirectories(@c:\, *.*); foreach (string s in pliki) { Console.WriteLine(s); Console.WriteLine(s);}
73
Copyright, 2004 © Adam Czajka Język C# Atrybuty plików class FileInfo { public FileInfo(string fileName); public bool Exists; {get;} public string Name; {get;} public string FullName; {get;} public string Extension; {get;} public string DirectoryName; {get;} public DirectoryInfo Directory; {get;} public long Length; {get;} public FileAttributes Attributes; {get;set} public DateTime CreationTime; {get;set} public DateTime LastAccessTime; {get;set} public DateTime LastWriteTime; {get;set}.....
74
Copyright, 2004 © Adam Czajka Język C# Atrybuty plików... public FileInfo CopyTo(string fileName); public FileInfo CopyTo(string fileName, bool overwrite); public void MoveTo(string fileName); public void Delete(); public void Refresh(); public FileStream Create(); public FileStream Open(FileMode fm); public FileStream Open(FileMode fm, FileAccess fa); public FileStream Open(FileMode fm, FileAccess fa, FileShare fs); public FileStream OpenRead(); public FileStream OpenWrite(); public StreamReader OpenText(); public StreamWriter CreateText(); public StreamWriter AppendText(); }
75
Copyright, 2004 © Adam Czajka Język C# Atrybuty plików class File { public static bool Exists(string fileName); public static FileAttributes GetAttributes(string fileName); public static DateTime GetCreationTime(string fileName); public static DateTime GetLastAccessTime(string fileName); public static DateTime GetLastWriteTime(string fileName); public static void SetAttributes(string fileName, FileAttributes fa); public static void SetCreationTime(string fileName, DateTime dt); public static void SetLastAccessTime(string fileName, DateTime dt); public static void SetLastWriteTime(string fileName, DateTime dt);.....
76
Copyright, 2004 © Adam Czajka Język C# Atrybuty plików... public static void Copy(string s, string d); public static void Copy(string s, string d, bool overwrite); public static void Move(string s, string d); public static void Delete(string fileName); public static FileStream Create(string fileName); public static FileStream Open(string fileName, FileMode fm); public static FileStream Open(string fileName, FileMode fm, FileAccess fa); public static FileStream Open(string fileName, FileMode fm, FileAccess fa, FileShare fs); public static FileStream OpenRead(string fileName); public static FileStream OpenWrite(string fileName); public static StreamReader OpenText(string fileName); public static StreamWriter CreateText(string fileName); public static StreamWriter AppendText(string fileName); }
77
Copyright, 2004 © Adam Czajka Język C# Atrybuty plików FileAttributes { Archive, Compressed, Directory, Encrypted, Hidden, Normal, Offline, ReadOnly, System, Temporary }
78
Copyright, 2004 © Adam Czajka Język C# Atrybuty plików.... string nazwa = @c:\autoexec.bat; if (File.Exists(nazwa)) { StreamReader fr = File.OpenText(nazwa); StreamReader fr = File.OpenText(nazwa); string buf; string buf; while ((buf = fr.ReadLine()) != null) while ((buf = fr.ReadLine()) != null) { Console.WriteLine(buf); Console.WriteLine(buf); } fr.Close(); fr.Close();}
79
Copyright, 2004 © Adam Czajka Język C# Atrybuty plików.... string nazwa = @c:\autoexec.bat; if (File.Exists(nazwa)) { FileAttributes atr = File.GetAttributes(nazwa); FileAttributes atr = File.GetAttributes(nazwa); FileAttributes atrNew = atr | FileAttributes.ReadOnly; FileAttributes atrNew = atr | FileAttributes.ReadOnly; File.SetAttributes(nazwa, atrNew); File.SetAttributes(nazwa, atrNew);}
80
Copyright, 2004 © Adam Czajka Język C#
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.