vizuális programozás

22
J.Zs.Cs.: Vizuális programozás (c) J.Zs.Cs.: Vizuális programozás (c) 2010 2010 Vizuális Vizuális programozás programozás Fájl- és állományrendszer Fájl- és állományrendszer kezelés kezelés Névtér: System.IO Névtér: System.IO

Upload: kass

Post on 27-Jan-2016

38 views

Category:

Documents


0 download

DESCRIPTION

Vizuális programozás. Fájl- és állományrendszer kezelés Névtér: System.IO. TextWriter. TextReader. StreamWriter Encoding,. StringWriter NewLine,. StreamReader Encoding,. StringReader NewLine,. BinaryReader. BinaryWriter. Stream Read, Write: byte[]. MemoryStream. FileStream. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Vizuális programozás

J.Zs.Cs.: Vizuális programozás (c) 2010J.Zs.Cs.: Vizuális programozás (c) 2010

Vizuális programozásVizuális programozás

Fájl- és állományrendszer kezelésFájl- és állományrendszer kezelés

Névtér: System.IONévtér: System.IO

Page 2: Vizuális programozás

J.Zs.Cs.: Vizuális programozás (c) 2010J.Zs.Cs.: Vizuális programozás (c) 2010

Stream

Read, Write: byte[]

FileStream BufferedStreamMemoryStream

IsolatedFileStream

BinaryReader

TextReader

StreamReader

Encoding, ...

StringReader

NewLine, ...

NetworkStream

TextWriter

StreamWriter

Encoding, ...

StringWriter

NewLine, ...

BinaryWriter

Page 3: Vizuális programozás

J.Zs.Cs.: Vizuális programozás (c) 2010J.Zs.Cs.: Vizuális programozás (c) 2010

Forrás: http://etutorials.org/Programming/C+in+a+nutshell+tutorial/Part+IV+API+Quick+Reference/Chapter+31.+System.IO/

Page 4: Vizuális programozás

J.Zs.Cs.: Vizuális programozás (c) 2010J.Zs.Cs.: Vizuális programozás (c) 2010

Fájlkezelés - Fájlkezelés - Fontosabb Fontosabb osztályokosztályok11

StreamStream: absztrakt ős, byte írás/olvasás: absztrakt ős, byte írás/olvasás– FileStreamFileStream: közvetlen állománykezelés, : közvetlen állománykezelés,

szinkron és aszinkron műveletekszinkron és aszinkron műveletek– MemoryStreamMemoryStream: nem pufferelt : nem pufferelt pufferként pufferként

használhatóhasználható– BufferedStreamBufferedStream: kiegészítő egy másik : kiegészítő egy másik

Stream-hez, pufferelést ad hozzáStream-hez, pufferelést ad hozzá– NetworkStreamNetworkStream: adatfolyam hálózati : adatfolyam hálózati

kapcsolaton keresztül. kapcsolaton keresztül. Névtér: System.Net.SocketsNévtér: System.Net.Sockets

– CryptoStreamCryptoStream: kriptográfiai transzformációk: kriptográfiai transzformációkNévtér: System.Security.CryptographyNévtér: System.Security.Cryptography

Page 5: Vizuális programozás

J.Zs.Cs.: Vizuális programozás (c) 2010J.Zs.Cs.: Vizuális programozás (c) 2010

Fontosabb osztályokFontosabb osztályok22

TextReaderTextReader: absztrakt ős, Unicode : absztrakt ős, Unicode karakter olvasáskarakter olvasás– StreamReaderStreamReader: karaktert olvas adatfolyamból : karaktert olvas adatfolyamból

(Stream-ből), byte-ról konvertál(Stream-ből), byte-ról konvertál– StringReaderStringReader: karaktert olvas stringből: karaktert olvas stringből

TextWriterTextWriter: absztrakt ős, Unicode : absztrakt ős, Unicode karakter íráskarakter írás– StreamWriterStreamWriter: karaktert ír adatfolyamba, : karaktert ír adatfolyamba,

byte-ra konvertálbyte-ra konvertál– StringWriterStringWriter: karaktert ír string-be: karaktert ír string-be

Page 6: Vizuális programozás

J.Zs.Cs.: Vizuális programozás (c) 2010J.Zs.Cs.: Vizuális programozás (c) 2010

Fontosabb osztályokFontosabb osztályok33

BinaryReaderBinaryReader: bináris adatot olvas : bináris adatot olvas adatfolyamból adatfolyamból

BinaryWriterBinaryWriter: bináris adatot ír : bináris adatot ír adatfolyambaadatfolyamba

Page 7: Vizuális programozás

J.Zs.Cs.: Vizuális programozás (c) 2010J.Zs.Cs.: Vizuális programozás (c) 2010

Útvonal megadásaÚtvonal megadása

"C:\\...\\...""C:\\...\\..."

@"C:\...\..."@"C:\...\..."

"C:/…/…""C:/…/…"

Page 8: Vizuális programozás

J.Zs.Cs.: Vizuális programozás (c) 2010J.Zs.Cs.: Vizuális programozás (c) 2010

Mit fogunk áttekinteni?Mit fogunk áttekinteni?

Alacsony szintű IOAlacsony szintű IO– IO bIO báájtonkjtonkéént nt –– FileStream FileStream

Magas szintű IOMagas szintű IO– IO adattIO adattíípusonkpusonkéént binnt bináárisan risan ––

BinaryReaderBinaryReader, , BinaryBinaryWriterWriter– IO szIO szöövegesen vegesen –– StreamReadeStreamReader, r,

StreamStreamWriterWriter

FileStream

BinaryReader/Writer

Állomány

FileStream

StreamReader/Writer

Állomány

Page 9: Vizuális programozás

J.Zs.Cs.: Vizuális programozás (c) 2010J.Zs.Cs.: Vizuális programozás (c) 2010

FileStreamFileStream11

Adatok írása és olvasása bájtonként, Adatok írása és olvasása bájtonként, alacsony szintű IO.alacsony szintű IO.

1.1. Megnyitás/LétrehozásMegnyitás/LétrehozásFileStream fs=new FileStream("név",FileStream fs=new FileStream("név", FileMode.Open, FileAccess.Read);FileMode.Open, FileAccess.Read);FileModeFileMode.Create, Append (hozzáfűz), .Create, Append (hozzáfűz), CreateNew (létrehoz, kivéve, ha már van CreateNew (létrehoz, kivéve, ha már van ilyen), OpenOrCreate, Truncate (megnyit ilyen), OpenOrCreate, Truncate (megnyit és tartalmat töröl)és tartalmat töröl)FileAccessFileAccess.Write, ReadWrite.Write, ReadWrite

Page 10: Vizuális programozás

J.Zs.Cs.: Vizuális programozás (c) 2010J.Zs.Cs.: Vizuális programozás (c) 2010

FileStreamFileStream22

1.1. ÍrásÍrásfs.Write(byte []miből, int honnan kezdve,fs.Write(byte []miből, int honnan kezdve,

int hány bájtot);int hány bájtot);fs.WriteByte(byte mit);fs.WriteByte(byte mit);

2.2. OlvasásOlvasásint a=fs.Read(byte []hova, int honnan int a=fs.Read(byte []hova, int honnan

kezdve tegye a tömbbe, int hány bájtot);kezdve tegye a tömbbe, int hány bájtot);a!=0 a!=0 a beolvasott bájtok száma a beolvasott bájtok számaa==0 a==0 sikertelen sikertelenint b=fs.ReadByte();int b=fs.ReadByte();b: -1 hiba esetén, pozitív egész int-re b: -1 hiba esetén, pozitív egész int-re konvertálvakonvertálva

Page 11: Vizuális programozás

J.Zs.Cs.: Vizuális programozás (c) 2010J.Zs.Cs.: Vizuális programozás (c) 2010

FileStreamFileStream33

1.1. PozícionálásPozícionálásfs.Seek(int eltolás mértéke,fs.Seek(int eltolás mértéke, SeekOrigin.Begin);SeekOrigin.Begin);SeekOrigin.Current, EndSeekOrigin.Current, Endfs.Position=5;fs.Position=5;

2.2. MéretváltoztatásMéretváltoztatásfs.SetLength(int újméret);fs.SetLength(int újméret);

3.3. LezárásLezárásfs.Close();fs.Close();

Page 12: Vizuális programozás

J.Zs.Cs.: Vizuális programozás (c) 2010J.Zs.Cs.: Vizuális programozás (c) 2010

StreamReader és StreamWriterStreamReader és StreamWriter11

Magas szintű szöveges Magas szintű szöveges állománykezelés. Egy FileStream-re állománykezelés. Egy FileStream-re épül.épül.

1.1. Megnyitás, létrehozásMegnyitás, létrehozásFileStream fs=new FileStream(…);FileStream fs=new FileStream(…);StreamReader sr=new StreamReader(fs);StreamReader sr=new StreamReader(fs);StreamWriter sw=new StreamWriter(fs);StreamWriter sw=new StreamWriter(fs);StreamReader sru=new StreamReader("név");StreamReader sru=new StreamReader("név");

Page 13: Vizuális programozás

J.Zs.Cs.: Vizuális programozás (c) 2010J.Zs.Cs.: Vizuális programozás (c) 2010

StreamReader és StreamWriterStreamReader és StreamWriter22

1.1. OlvasásOlvasásstring t=sr.ReadLine(); //beolvas egy sort string t=sr.ReadLine(); //beolvas egy sort vagy null-t ad, ha elértük a fájl végétvagy null-t ad, ha elértük a fájl végétint a=sr.Read(); //egy karaktert olvasint a=sr.Read(); //egy karaktert olvasstring végéig=sr.ReadToEnd();string végéig=sr.ReadToEnd();

2.2. ÍrásÍrássw.Write(string mit);sw.Write(string mit);sw.WriteLine(string mit); sw.WriteLine(string mit); "\r\n", "\r\n",

3.3. LezárásLezárássw.Close();sw.Close();

Page 14: Vizuális programozás

J.Zs.Cs.: Vizuális programozás (c) 2010J.Zs.Cs.: Vizuális programozás (c) 2010

BinaryReader és BinaryWriterBinaryReader és BinaryWriter11

Magas szintű bináris Magas szintű bináris állománykezelés. Egy FileStream-re állománykezelés. Egy FileStream-re épül.épül.

1.1. Megnyitás, létrehozásMegnyitás, létrehozásFileStream fs=new FileStream(…);FileStream fs=new FileStream(…);BinaryReader br=new BinaryReader(fs);BinaryReader br=new BinaryReader(fs);BinaryWriter bw=new BinaryWriter(fs);BinaryWriter bw=new BinaryWriter(fs);BinaryReader bru=new BinaryReader("név");BinaryReader bru=new BinaryReader("név");

Page 15: Vizuális programozás

J.Zs.Cs.: Vizuális programozás (c) 2010J.Zs.Cs.: Vizuális programozás (c) 2010

BinaryReader és BinaryWriterBinaryReader és BinaryWriter22

1.1. OlvasásOlvasásint a=br.Read();int a=br.Read(); //-1 vagy a következő //-1 vagy a következő karakterkarakterReadByte,ReadDouble,ReadInt16,…ReadByte,ReadDouble,ReadInt16,… br.Read(byte []hova, int honnan br.Read(byte []hova, int honnan

kezdve tegye a tömbbe, int hány bájtot);kezdve tegye a tömbbe, int hány bájtot);2.2. ÍrásÍrás

bw.Write(változó);bw.Write(változó); //alaptípusok //alaptípusokbw.Write(byte []miből, int honnan kezdve, bw.Write(byte []miből, int honnan kezdve,

int hány bájtot); int hány bájtot); 3.3. LezárásLezárás

bw.Close();bw.Close();

Page 16: Vizuális programozás

J.Zs.Cs.: Vizuális programozás (c) 2010J.Zs.Cs.: Vizuális programozás (c) 2010

Állományrendszer Állományrendszer kezelésekezelése

Névtér: System.IONévtér: System.IO

Page 17: Vizuális programozás

J.Zs.Cs.: Vizuális programozás (c) 2010J.Zs.Cs.: Vizuális programozás (c) 2010

Állományrendszer kezelése Állományrendszer kezelése - - Fontosabb osztályokFontosabb osztályok

DirectoryInfoDirectoryInfo: könyvtárak létrehozása, : könyvtárak létrehozása, törlése, manipulálása. Csak példány szintű törlése, manipulálása. Csak példány szintű metódusok.metódusok.FileInfoFileInfo: állományok létrehozása, törlése, : állományok létrehozása, törlése, manipulálása. Csak példány szintű manipulálása. Csak példány szintű metódusok.metódusok.

DirectoryDirectory: könyvtárak létrehozása, törlése, : könyvtárak létrehozása, törlése, manipulálása. Csak statikus metódusok.manipulálása. Csak statikus metódusok.FileFile: állományok létrehozása, törlése, : állományok létrehozása, törlése, manipulálása. Csak statikus metódusok.manipulálása. Csak statikus metódusok.

PathPath: műveletek útvonal információt : műveletek útvonal információt tartalmazó string-entartalmazó string-en

Page 18: Vizuális programozás

J.Zs.Cs.: Vizuális programozás (c) 2010J.Zs.Cs.: Vizuális programozás (c) 2010

DirectoryInfoDirectoryInfo

DirectoryInfo di=new DirectoryInfo(könyvtárnév);DirectoryInfo di=new DirectoryInfo(könyvtárnév);pl. (".") vagy (@"C:\windows")pl. (".") vagy (@"C:\windows")string név=di.FullName;string név=di.FullName;FileInfo []fi=di.GetFiles();FileInfo []fi=di.GetFiles();DirectoryInfo []dis=di.GetDirectories();DirectoryInfo []dis=di.GetDirectories();DirectoryInfo szülő=di.Parent;DirectoryInfo szülő=di.Parent;di=new DirectoryInfo("újdi=new DirectoryInfo("új könyvtár");könyvtár");if(!di.Exists)if(!di.Exists)

di.Create();di.Create();di.Attributes|=FileAttributes.Hidden… ;di.Attributes|=FileAttributes.Hidden… ;……di.Delete(true);di.Delete(true);

Page 19: Vizuális programozás

J.Zs.Cs.: Vizuális programozás (c) 2010J.Zs.Cs.: Vizuális programozás (c) 2010

DirectoryDirectory

string kt=Directory.GetCurrentDirectory()string kt=Directory.GetCurrentDirectory()aktuális könyvtáraktuális könyvtár

string string []megh=Directory.GetLogicalDrives()[]megh=Directory.GetLogicalDrives()A:\,C:\,…A:\,C:\,…

Directory.Create(…)Directory.Create(…)

Directory.Delete(…)Directory.Delete(…)

Directory.MoveTo(…)Directory.MoveTo(…)

Directory.CopyTo(…)Directory.CopyTo(…)

Page 20: Vizuális programozás

J.Zs.Cs.: Vizuális programozás (c) 2010J.Zs.Cs.: Vizuális programozás (c) 2010

FileInfoFileInfo

FileAttributes AttributesFileAttributes Attributesbool Existsbool Existsstring Extensionstring Extensionstring FullNamestring FullNameDateTime LastWriteTimeDateTime LastWriteTimeint Lengthint LengthCopyTo()CopyTo()MoveTo()MoveTo()Create()Create()Delete()Delete()

Page 21: Vizuális programozás

J.Zs.Cs.: Vizuális programozás (c) 2010J.Zs.Cs.: Vizuális programozás (c) 2010

Könyvtárfa mintaprogramKönyvtárfa mintaprogram

Page 22: Vizuális programozás

J.Zs.Cs.: Vizuális programozás (c) 2010J.Zs.Cs.: Vizuális programozás (c) 2010

Biztonsági másolat Biztonsági másolat készítőkészítő

PéldaprogramPéldaprogram