Szoftverfejlesztés .NET platformon - Jegyzet 2. fejezet

A VIK Wikiből
A lap korábbi változatát látod, amilyen David14 (vitalap | szerkesztései) 2013. február 5., 22:58-kor történt szerkesztése után volt. (David14 átnevezte a(z) Szoftverfejlesztés .NET plattformon - 2. Input/Output lapot a következő névre: Szoftverfejlesztés .NET plattformon - Jegyzet 2. fejezet)

Ez az oldal a korábbi SCH wikiről lett áthozva.

Ha úgy érzed, hogy bármilyen formázási vagy tartalmi probléma van vele, akkor, kérlek, javíts rajta egy rövid szerkesztéssel!

Ha nem tudod, hogyan indulj el, olvasd el a migrálási útmutatót.


70-536 .NET Framework 2.0 Application Development Foundation

%TOC{depth="3"}%

Filerendszer információs osztályok

=System.IO= névtérben vannak. File / könyvtár / lemez információkat kérdeznek le és tárolnak, illetve műveleteket végeznek rajtuk.

=FileSystemInfo=: file-ról vagy könyvtárról ad vissza információt (az információs filerendszer osztályok ősosztálya)

  • =Name=, =Extension=, =FullName=
  • =Attributes=
  • =CreationTime=, =LastAccessTime=, =LastWriteTime=
  • =Exists=
  • =Refresh()=: újból lekérdezi az információkat
  • =Delete()=: kitörli a file-t vagy a könyvtárat

FileInfo= : =FileSystemInfo

  • konstruktor: =new FileInfo("file név")=
  • =Directory=, =DirectoryName=, =IsReadOnly=, =Length=
  • =Create()=
  • =AppendText()=: visszaad egy
    StreamWriter
    -t, amivel bővíthető a file
  • =CopyTo()=, =MoveTo()=, =Replace()=
  • =Encrypt()=, =Decrypt()=
  • =Open()=, =OpenRead()=, =OpenWrite()=, =OpenText()=

DirectoryInfo= : =FileSystemInfo

  • konstruktor: =new DirectoryInfo(@"C:\")=
  • =Parent=, =Root=
  • =GetFiles()=, =GetDirectories()=, =GetFileSystemInfos()=
  • =Create=, =CreateSubdirectory()=
  • =MoveTo()=

DriveInfo

  • =AvailableFreeSpace=: szabad hely, kvótát figyelembe véve
  • =TotalFreeSpace=: teljes szabad hely
  • =TotalSize=: lemez teljes mérete
  • =DriveFormat=: filerendszer
  • =DriveType=: pl. =Fixed=, =Network=, =CDROM=
  • =Name=
  • =IsReady=: formattálva van-e, van-e bent CD
  • =VolumeLabel=
  • =GetDrives()=: felsorolja az összes meghajtót
  • Példa*: könyvtár tartalmának lekérdezése
DirectoryInfo di = new DirectoryInfo(@"c:\windows");
Console.WriteLine("Directory: {0}", di.FullName);
foreach (FileInfo file in di.GetFiles())
	 Console.WriteLine("File: {0}", file.Name);
  • Példa*: meghajtók felsorolása
foreach (DriveInfo drive in DriveInfo.GetDrives())
	 Console.WriteLine("Drive: {0}, Type: {1}", drive.Name, drive.DriveType);

Filerendszer utility osztályok

Segédeljárásokat tartalmaznak az file- és könyvtárnevek manipulására és a filerendszer változásainak figyelésére.

Path

  • =ChangeExtension()=: kiterjesztés lecserélése (stringben)
  • =Combine()=: relatív→abszolút könyvtár
  • =GetDirectoryName=, =GetFileName=, =GetFileNameWithoutExtension=, ...
  • =GetTempFileName=
  • stb.

=FileSystemWatcher=: file események figyelése

  • =EnableRisingEvents=true=: figyelés bekapcsolása
  • =Filter=: figyelendő file-ok maszkjának megadása, blank=*.*
  • =Path=: melyik könyvtárat figyelje
  • =IncludeSubDirectories=: figyelje-e az alkönyvtárakat
  • =NotifyFilter=: milyen jellegű változások esetén váltson ki eseményt
  • =Changed(FileSystemEventArgs)=, =Created=, =Deleted=, =Renamed(RenamedEventArgs)=, =Error(ErrorEventArgs)= események
    • =FileSystemEventArgs.ChangeType=: milyen változás történt?
    • =Error=: túl sok esemény történt

File-ok olvasása és írása

=Stream=: adatok soros vagy véletlen elérését támogató absztrakt osztály.

  • =CanRead=, =CanWrite=, =CanSeek=: stream alaptulajdonságai
  • =CanTimeout=, =ReadTimeout=, =WriteTimeout=: timeout-ra vonatkozó információk
  • =Position=, =Length=
  • =SetLength()=: csonkítás vagy hossz növelés
  • =Read()=, =ReadByte()=, =Write()=, =WriteByte()=
  • =Flush()=, =Close()=
  • leszármazottjai: =FileStream=, =MemoryStream=, =NetworkStream=, =CryptoStream=, =GZipStream=

=File= osztály

  • =Exists=
  • =Create()=: létrehoz egy file-t, és visszaad egy =FileStream= objektumot
  • =CreateText()=: létrehoz egy file-t, és visszaad egy =StreamWriter= objektumot
  • =AppendText()=: megnyit egy file-t írásra, a végére pozicionál, és visszaad egy =StreamWriter= objektumot
  • =FileStream File.Open()=
  • =FileStream File.OpenRead()= (read-only streamet nyit)
  • =FileStream File.OpenWrite()=
  • =StreamReader File.OpenText()= (UTF-8 szöveges file-t olvas)
  • =ReadAllBytes()=, =ReadAllLines()=, =ReadAllText()=
  • =WriteAllBytes()=, =WriteAllLines()=, =WriteAllText()=
  • =Copy()=, =Move()=

FileStream

  • =new FileStream(név, FileMode, FileAccess)=
  • =FileAccess=: =Read=, =Write=, =ReadWrite=
  • =FileMode=:

=Append= (írás), =Create= (ha létezett, felülírja), =CreateNew= (ha létezett, =Exception=), =Open= (ha nem létezett, =Exception=), =OpenOrCreate=, =Truncate= (meglévő file-t kiürít)

StreamReader= és =StreamWriter

  • =new StreamReader(név)=
  • =new StreamWriter(név, FileMode, FileAccess)=
  • =sr.Read()= (char[] pufferbe), =sr.ReadLine()=, =sr.ReadToEnd()= (stringet ad vissza)
  • =sw.Write()=, =sw.WriteLine()=

Tömörítés

Kétféle tömörítést támogat a .NET: =GZipStream= és =DeflateStream=. A tömörítési algoritmus ugyanaz, az egyetlen különbség, hogy a =DeflateStream= nem használ headert. A tömörítendő adat mérete legfeljebb 4 GB lehet.

Példa GZip tömörítésre:

GZipStream zip1 = new GZipStream(outputStream, CompressionMode.Compress);
zip1.Write(buffer, 0, buffer.Length);
GZipStream zip2 = new GZipStream(inputStream, CompressionMode.Decompress);
zip2.Read(buffer, 0, buffer.Length)

IsolatedStorage

Extra jogok nélkül is lehet ide írni. Pl. SmartClient alkalmazások.

  • Nincs publikus konstruktor, statikus metódusokkal lehet példányosítani
  • =IsolatedStorageFile.Get{Machine|User}StoreFor{Assembly||DomainApplication}=
  • =IsolatedStorageFileStream isfs = new IsolatedStorageFileStream(...)=

-- Peti - 2007.06.27.