C# esetén a fájlkezelést segÃtÅ‘ osztályok, objektumok a System.IO névtérben találhatóak. A fájlkezelés alaposztálya a Stream, vagyis adatfolyam. A Windows kernel és a .NET is adatfolyamként, vagyis bitek sorozataként kezeli a fájlokat, Ãgy külön lemezre kerülés szempontjából nem különböztetünk meg szöveges és bináris fájlokat, mivel minden fájl bináris.
Persze ettÅ‘l függetlenül tudunk szöveges fájlokat is kezelni, de ez már az adatfolyamok felett megvalósÃtott .NET funkció.
A fájlkezelés nem csak fájlok Ãrásából és olvasásából áll. A .NET teljes könyvtár- és fájl listázási lehetÅ‘ségekkel rendelkezik.
Mivel a fájlkezelés igen nagy és összetett témakör, ezért a teljes névtér megismerését alfejezetekre bontottam feladat és témakör szerint.
Kivételkezelés fájlkezelés esetén
A fájlkezelés tipikusan az a műveletsor, ahol különösen jól jön a kivételkezelés. Fájlok kezelése során egy csomó minden okozhat kivételt. Például a meghajtó meghibásodása, a megfelelÅ‘ jogosultságok hiánya, vagy szimplán az, hogy az olvasni/Ãrni kÃvánt fájlt éppen egy másik program használja.
Éppen ezért célszerű minden fájlkezelÅ‘ műveletet körbe venni egy try – catch blokkal. A kivétel, amit ilyenkor el kell kapnunk, az IOException osztály példánya lesz.
try
{
//fájlkezelő műveletek
}
catch (IOException)
{
//IO hiba kezelése
}
catch (Exception)
{
//Minden más hiba kezelése, vagy ha máshol kezeljük, akkor tovább dobjuk:
throw;
}
A fejezet olvasása elÅ‘tt ismétlÅ‘ jelleggel érdemes átnézni a kivételkezelést és az IDisposable, valamint usafe blokkokról Ãrtakat.