A fájlkezelésért a System.IO névtérben található File alaposztály felel, amely a fájlkezeléshez számos statikus függvényt nyújt (az összes itt található függvény statikus). A fontosabbak:
AppendText | Szöveget fűz a fájlhoz. |
Copy | Új fájlt készít egy meglevő fájl alapján. |
Create | Új fájlt készít a megadott helyen. |
CreateText/td> | Új fájlt készít, amely alkalmas szöveg tárolására. |
Delete | Törli az adott helyen található fájlt. Ennek léteznie kell, különben kivétel váltódik ki. |
Exists | Meghatározza, hogy adott helyen létezik-e az adott fájl. |
GetAttributes | Tájékoztat a fájl tulajdonságairól, pl. a fájl tömörített, valójában egy könyvtárat takar, rejtett, csak olvasható, rendszerfájl, ideiglenes, esetleg más különleges fájltípus. |
GetCreationTime | Megadja a fájl létrehozásának dátumát, idejét. |
GetLastAccessTime | Megadja a fájl legutóbbi elérésének dátumát, idejét. |
GetLastWriteTime | Megadja a fájl legutóbbi fájlba írás dátumát, idejét. |
Move | Lehetővé teszi a fájl áthelyezését, illetve átnevezését. |
Open | Megnyitja az adott helyen található fájlt. Ezzel írhatunk bele, illetve olvashatunk belőle. |
OpenRead | Megnyit egy fájlt olvasásra. |
OpenText | Megnyit egy fájlt, melynek tartalma szövegként értelmezhető. |
OpenWrite | Megnyit egy megadott fájlt írásra. |
SetAttributes | Beállítja a megadott fájl tulajdonságait. |
SetCreationTime | Beállítja a fájl létrehozásának dátumát és idejét. |
SetLastAccessTime | Beállítja az utolsó elérés dátumát és idejét. |
SetLastWriteTime | Beállítja az utolsó módosítás dátumát és idejét. |
A fájlok adatainak kezeléséért a FileSystemInfo -ból származó System.IO.FileInfo osztály felelős. Fontosabb tulajdonságai:
Attributes | A System.IO.FileSystemInfo System.IO.FileAttributes tulajdonságai. |
CreationTime | A System.IO.FileSystemInfo létrehozási ideje. |
CreationTimeUtc | A System.IO.FileSystemInfo létrehozási ideje egyezményes koordinált világidőben (UTC) megadva. |
Exists (readonly) | Megállapítja, hogy létezik-e a fájl. |
Extension (readonly) | A fájl kiterjesztését adja meg. |
FullName (readonly) | A fájl teljes elérési útvonalát adja meg. |
LastAccessTime | A fájlhoz történő utolsó hozzáférés ideje. |
LastAccessTimeUtc | A fájlhoz történő utolsó hozzáférés ideje egyezményes koordinált világidőben (UTC) megadva. |
LastWriteTime | A fájl utolsó írásának ideje. |
LastWriteTimeUtc | A fájl utolsó írásának ideje egyezményes koordinált világidőben (UTC) megadva. |
Name (readonly) | Megadja a fájl nevét. |
A könyvtárak és azok adatainak kezelése a System.IO.Directory és System.IO.DirectoryInfo osztályok segítségével történhet. Speciális metódusai:
GetCurrentDirectory | Visszaadja az alkalmazás által használt könyvtárat. |
GetDirectories | Ennek több túlterhelt változata van. Egy útvonalat megadva le lehet kérni az adott útvonal legbelső könyvtárában található összes könyvtárat. Lehet keresési minta alapján keresni, illetve meg lehet adni, hogy csak az adott könyvtárra vagy az alkönyvtáraira is végezze el a keresést. |
GetFiles | A GetDirectories metódushoz hasonlóan működik. |
Az útvonalak kezelését a System.IO.Path osztály segítségével végezhetjük. Fontosabb metódusai:
GetDirectoryName(string) | Visszaadja a könyvtárnevet. |
GetExtension(string) | Visszaadja a kiterjesztést. |
GetFileName(string) | Visszaadja a fájlnevet kiterjesztéssel együtt. |
GetFileNameWithoutExtension(string) | Visszaadja a fájlnevet kiterjesztés nélkül. |
GetFullPath(string) | Visszaadja az abszolút útvonalat. |
HasExtension(string) | Megállapítja, hogy az útvonal tartalmaz-e kiterjesztést. |
IsPathRooted(string) | Megállapítja, hogy az útvonal abszolút vagy relatív. |
A fájlmódosítás alaplépései:
Specifikusan a karakteres olvasás alaplépései:
Az írás hasonlóan, csak StreamReader helyett StreamWriter -t, ReadLine() helyett pedig WriteLine() -t kell alkalmazni.
Példa (StreamReader, StreamWriter):
Példa (FileStream):
Példa (BinaryReader, BinaryWriter):
Melyik osztályt mikor célszerű használni:
Ehhez még annyit fűznék hozzá, hogy ékezetes betűket és egyéb, nem 8-bites ASCII-karaktereket tartalmazó fájlok esetén érdemes használni a System.Text.Encoding osztályt.
Példa (StreamReader):
Ez megoldja az ékezetes betűket tartalmazó fájlok beolvasását. A fájlba írásnál ugyanúgy a System.Text.Encoding osztályt kell használni, ha ilyen karaktereket akarunk beleírni.
A System.Text.Encoding osztály képes ASCII, Unicode, UTF32, UTF7, UTF8 kódolást is használni a Default (alapértelmezett) kódoláson kívül, valamint a Convert metódussal az egyes kódolások közötti átváltás is megoldható.