J.Zs.Cs.: Vizuális programozás (c) 2010 Vizuális programozás Fájl- és állományrendszer kezelés Névtér: System.IO
J.Zs.Cs.: Vizuális programozás (c) 2010 Stream Read, Write: byte[] FileStream BufferedStream MemoryStream IsolatedFileStream BinaryReader TextReader StreamReader Encoding,... StringReader NewLine,... NetworkStream TextWriter StreamWriter Encoding,... StringWriter NewLine,... BinaryWriter
J.Zs.Cs.: Vizuális programozás (c) 2010 Forrás: Part+IV+API+Quick+Reference/Chapter+31.+System.IO/
J.Zs.Cs.: Vizuális programozás (c) 2010 Fájlkezelés - Fontosabb osztályok 1 Stream: absztrakt ős, byte írás/olvasás –FileStream: közvetlen állománykezelés, szinkron és aszinkron műveletek –MemoryStream: nem pufferelt pufferként használható –BufferedStream: kiegészítő egy másik Stream-hez, pufferelést ad hozzá –NetworkStream: adatfolyam hálózati kapcsolaton keresztül. Névtér: System.Net.Sockets –CryptoStream: kriptográfiai transzformációk Névtér: System.Security.Cryptography
J.Zs.Cs.: Vizuális programozás (c) 2010 Fontosabb osztályok 2 TextReader: absztrakt ős, Unicode karakter olvasás –StreamReader: karaktert olvas adatfolyamból (Stream-ből), byte-ról konvertál –StringReader: karaktert olvas stringből TextWriter: absztrakt ős, Unicode karakter írás –StreamWriter: karaktert ír adatfolyamba, byte-ra konvertál –StringWriter: karaktert ír string-be
J.Zs.Cs.: Vizuális programozás (c) 2010 Fontosabb osztályok 3 BinaryReader: bináris adatot olvas adatfolyamból BinaryWriter: bináris adatot ír adatfolyamba
J.Zs.Cs.: Vizuális programozás (c) 2010 Útvonal megadása
J.Zs.Cs.: Vizuális programozás (c) 2010 Mit fogunk áttekinteni? Alacsony szintű IO –IO b á jtonk é nt – FileStream Magas szintű IO –IO adatt í pusonk é nt bin á risan – BinaryReader, BinaryWriter –IO sz ö vegesen – StreamReader, StreamWriter FileStream BinaryReader/Writer Állomány FileStream StreamReader/Writer Állomány
J.Zs.Cs.: Vizuális programozás (c) 2010 FileStream 1 Adatok írása és olvasása bájtonként, alacsony szintű IO. 1.Megnyitás/Létrehozás FileStream fs=new FileStream("név", FileMode.Open, FileAccess.Read); FileMode.Create, Append (hozzáfűz), CreateNew (létrehoz, kivéve, ha már van ilyen), OpenOrCreate, Truncate (megnyit és tartalmat töröl) FileAccess.Write, ReadWrite
J.Zs.Cs.: Vizuális programozás (c) 2010 FileStream 2 1.Írás fs.Write(byte []miből, int honnan kezdve, int hány bájtot); fs.WriteByte(byte mit); 2.Olvasás int a=fs.Read(byte []hova, int honnan kezdve tegye a tömbbe, int hány bájtot); a!=0 a beolvasott bájtok száma a==0 sikertelen int b=fs.ReadByte(); b: -1 hiba esetén, pozitív egész int-re konvertálva
J.Zs.Cs.: Vizuális programozás (c) 2010 FileStream 3 1.Pozícionálás fs.Seek(int eltolás mértéke, SeekOrigin.Begin); SeekOrigin.Current, End fs.Position=5; 2.Méretváltoztatás fs.SetLength(int újméret); 3.Lezárás fs.Close();
J.Zs.Cs.: Vizuális programozás (c) 2010 StreamReader és StreamWriter 1 Magas szintű szöveges állománykezelés. Egy FileStream-re épül. 1.Megnyitás, létrehozás FileStream fs=new FileStream(…); StreamReader sr=new StreamReader(fs); StreamWriter sw=new StreamWriter(fs); StreamReader sru=new StreamReader("név");
J.Zs.Cs.: Vizuális programozás (c) 2010 StreamReader és StreamWriter 2 1.Olvasás string t=sr.ReadLine(); //beolvas egy sort vagy null-t ad, ha elértük a fájl végét int a=sr.Read(); //egy karaktert olvas string végéig=sr.ReadToEnd(); 2.Írás sw.Write(string mit); sw.WriteLine(string mit); "\r\n", 3.Lezárás sw.Close();
J.Zs.Cs.: Vizuális programozás (c) 2010 BinaryReader és BinaryWriter 1 Magas szintű bináris állománykezelés. Egy FileStream-re épül. 1.Megnyitás, létrehozás FileStream fs=new FileStream(…); BinaryReader br=new BinaryReader(fs); BinaryWriter bw=new BinaryWriter(fs); BinaryReader bru=new BinaryReader("név");
J.Zs.Cs.: Vizuális programozás (c) 2010 BinaryReader és BinaryWriter 2 1.Olvasás int a=br.Read(); //-1 vagy a következő karakter ReadByte,ReadDouble,ReadInt16,… br.Read(byte []hova, int honnan kezdve tegye a tömbbe, int hány bájtot); 2.Írás bw.Write(változó); //alaptípusok bw.Write(byte []miből, int honnan kezdve, int hány bájtot); 3.Lezárás bw.Close();
J.Zs.Cs.: Vizuális programozás (c) 2010 Állományrendszer kezelése Névtér: System.IO
J.Zs.Cs.: Vizuális programozás (c) 2010 Állományrendszer kezelése - Fontosabb osztályok DirectoryInfo: könyvtárak létrehozása, törlése, manipulálása. Csak példány szintű metódusok. FileInfo: állományok létrehozása, törlése, manipulálása. Csak példány szintű metódusok. Directory: könyvtárak létrehozása, törlése, manipulálása. Csak statikus metódusok. File: állományok létrehozása, törlése, manipulálása. Csak statikus metódusok. Path: műveletek útvonal információt tartalmazó string-en
J.Zs.Cs.: Vizuális programozás (c) 2010 DirectoryInfo DirectoryInfo di=new DirectoryInfo(könyvtárnév); pl. (".") vagy string név=di.FullName; FileInfo []fi=di.GetFiles(); DirectoryInfo []dis=di.GetDirectories(); DirectoryInfo szülő=di.Parent; di=new DirectoryInfo("új könyvtár"); if(!di.Exists) di.Create(); di.Attributes|=FileAttributes.Hidden… ; … di.Delete(true);
J.Zs.Cs.: Vizuális programozás (c) 2010 Directory string kt=Directory.GetCurrentDirectory() aktuális könyvtár string []megh=Directory.GetLogicalDrives() A:\,C:\,… Directory.Create(…)Directory.Delete(…)Directory.MoveTo(…)Directory.CopyTo(…)
J.Zs.Cs.: Vizuális programozás (c) 2010 FileInfo FileAttributes Attributes bool Exists string Extension string FullName DateTime LastWriteTime int Length CopyTo()MoveTo()Create()Delete()
J.Zs.Cs.: Vizuális programozás (c) 2010 Könyvtárfa mintaprogram
J.Zs.Cs.: Vizuális programozás (c) 2010 Biztonsági másolat készítő Példaprogram