Fájlkezelés C#-ban: I/O Operaciók [Példák]
A C# fájlműveletek széles skálájával rendelkezik. Ezek a műveletek magukban foglalják a fájl megnyitását, a fájlba való olvasást vagy írást. Előfordulhatnak olyan esetek, amikor közvetlenül szeretne fájlokkal dolgozni, ebben az esetben a C#-ban elérhető fájlműveleteket használja. Az alábbiakban felsorolunk néhány alapvető fájlműveletet.
- Olvasás – Ez a művelet az alapvető olvasási művelet, amelyben az adatok egy fájlból kerülnek kiolvasásra.
- Írás – Ez a művelet az alapvető írási művelet, amelynek során az adatok fájlba íródnak. Alapértelmezés szerint az összes meglévő tartalom eltávolításra kerül a fájlból, és új tartalom kerül írásra.
- Hozzáfűzés – Ez a művelet magában foglalja az információk fájlba írását is. Az egyetlen különbség az, hogy a fájlban lévő adatok nem íródnak felül. Az új írandó adatok a fájl végére kerülnek.
Alapvető I/O parancsok
A C# és a .Net többféle File I/O parancs segítségével képes fájlokkal dolgozni. Nézzünk meg néhány ilyen parancsot. Példánkban feltételezzük, hogy van egy Példa.txt nevű fájl a D meghajtón.
A fájl egy egyszerű szövegfájl lesz, és 2 sorból áll, az alábbiak szerint
- Guru99 – .Net
- Guru99 -C#
Példánkban egy egyszerű konzolalkalmazást fogunk létrehozni, és a Fájl I/O parancsainkkal dolgozunk. A konzolalkalmazás az alapalkalmazás, amelyet a korábbi oktatóanyagban hoztak létre. A konzolalkalmazásban az összes kód a program.cs fájlba kerül.
A fájl létezik
A Fájl létezik módszerrel ellenőrizhető, hogy létezik-e egy adott fájl. Lássuk tehát azt a kódot, amellyel ellenőrizhetjük, hogy létezik-e példa.txt fájlunk vagy sem. Írja be az alábbi kódot a program.cs fájlba.
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Tutorial { static void Main(string[] args) { String path = @"D:\Example.txt"; if (File.Exists(path)) { Console.WriteLine("File Exists"); } Console.ReadKey(); } } }
Kód magyarázata: -
- Először beállítunk egy karakterlánc-változót, amely az Example.txt fájl elérési útját tartalmazza.
- Ezután a File.Exists metódussal ellenőrizzük, hogy a fájl létezik-e vagy sem. Ha a fájl létezik, a rendszer valódi értéket ad vissza.
- Ha valódi értéket kapunk, és a fájl létezik, akkor a „Fájl létezik” üzenetet írjuk a konzolra.
Ha a fenti kód be van állítva, és a projektet a Visual Studio segítségével hajtják végre, az alábbi kimenetet kapja.
Kimenet:-
A fenti kimenetből láthatja, hogy a File.Exists parancs végrehajtása sikeres volt, és a megfelelő üzenet jelent meg a konzol ablakában.
File.ReadAlllines
A módszer egy fájl összes sorának egyenkénti olvasására szolgál. A sorokat ezután egy string tömb változóban tároljuk. Nézzünk egy példát. Írja be az alábbi kódot a program.cs fájlba.
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Tutorial { static void Main(string[] args) { String path = @"D:\Example.txt"; String[] lines; lines = File.ReadAllLines(path); Console.WriteLine(lines[0]); Console.WriteLine(lines[1]); Console.ReadKey(); } } }
Kód magyarázata: -
- Először deklarálunk egy string tömb változót. Ez az eredmény tárolására szolgál, amelyet a File.ReadAllLines metódus ad vissza.
- Ezután a File.ReadAllLines metódust használjuk a szövegfájlunk összes sorának beolvasására. Az eredmény ezután átkerül a sorváltozóba.
- Mivel tudjuk, hogy a fájlunk csak 2 sort tartalmaz, ezért a lines[0] és lines[1] parancsokon keresztül érhetjük el a tömbváltozók értékét.
Ha a fenti kód be van állítva, és a projekt a használatával fut Visual Studio, akkor az alábbi kimenetet kapja.
Kimenet:-
A kimenetből látható, hogy a File.ReadAllLines parancs mindkét sort visszaadta az Example.txt fájlunkból.
File.ReadAllText
Ez a módszer egy fájl összes sorának egyidejű olvasására szolgál. A sorokat ezután egy karakterlánc-változóban tárolják. Nézzünk egy példát. Írja be az alábbi kódot a program.cs fájlba.
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Tutorial { static void Main(string[] args) { String path = @"D:\Example.txt"; String lines; lines = File.ReadAllText(path); Console.WriteLine(lines); Console.ReadKey(); } } }
Kód magyarázata: -
- Először deklarálunk egy karakterlánc-változót, amelyet Vonalaknak hívnak. Ez az eredmény tárolására szolgál, amelyet a File.ReadAllText metódus ad vissza.
- Ezután a File.ReadAllText metódust használjuk a szövegfájlunk összes sorának beolvasására. Az eredmény ezután átkerül a sorváltozóba.
- Közvetlenül a Console.Writeline metódussal tudjuk megjeleníteni a Lines változó értékét.
Ha a fenti kód be van állítva, és a projekt a Visual Studio használatával fut, az alábbi kimenetet kapja.
Kimenet:-
A kimenetből láthatja, hogy a File.ReadAlltext parancs mindkét sort visszaadta az Example.txt fájlunkból
Fájl.Másolás
A módszert egy meglévő fájl másolatának készítésére használják. Nézzünk egy példát. Írja be az alábbi kódot a program.cs fájlba.
using System; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Tutorial { static void Main(string[] args) { String path = @"D:\Example.txt"; String copypath = @"D:\ExampleNew.txt"; File.Copy(path,copypath); Console.ReadKey(); } } }
Kód magyarázata: -
- Először deklarálunk egy path nevű karakterlánc-változót. Ez lesz a példa.txt fájlunk helye. Ez a fájl lesz a másolási művelethez használt forrásfájl.
- Ezután deklarálunk egy copypath nevű karakterlánc-változót. Ez lesz egy példaNew.txt fájl nevű új fájl helye. Ez lesz az a célfájl, amelybe a Példa.txt forrásfájl tartalma kerül beírásra.
- Ezután meghívjuk a File.Copy metódust, hogy a Példa.txt fájlt a PéldaNew.txt fájlba másoljuk.
Ha a fenti kód be van állítva, és a projekt a Visual Studio használatával fut, akkor a Példa.txt fájl átmásolódik az ExampleNew.txt fájlba.
Fájl.Törlés
A módszer egy meglévő fájl törlésére szolgál. Nézzünk egy példát. Írja be az alábbi kódot a program.cs fájlba.
using System; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Tutorial { static void Main(string[] args) { String path = @"D:\Example.txt"; File.Delete(path); Console.ReadKey(); } } }
Kód magyarázata: -
- Először deklarálunk egy path nevű karakterlánc-változót. Ez lesz a példa.txt fájlunk helye. Ez az a fájl, amely törlésre kerül.
- Ezután a File.Delete metódust hívjuk meg a fájl törléséhez.
Ha a fenti kód be van állítva, és a projekt a Visual Studio használatával fut, a Példa.txt fájl törlődik a D meghajtóról.
Összegzésként
- A C# számos fájlműveletet tartalmaz, amelyeket fájlokon lehet végrehajtani. A legtöbb ilyen művelet a Fájl osztály része.
- Ha adatokat szeretne olvasni egy fájlból, használhatja a File.ReadAlltext vagy a File.ReadAllLines metódust.
Fájl mód | Description |
---|---|
A fájl létezik | A fájl létezik módszerrel ellenőrizhető, hogy létezik-e egy adott fájl. |
File.ReadAlllines | A módszer egy fájl összes sorának egyenkénti olvasására szolgál. |
File.ReadAllText | Ez a módszer a fájl összes sorának egyidejű olvasására szolgál. |
Fájl.Másolás | A módszert egy meglévő fájl másolatának készítésére használják. |
Fájl.Törlés | A módszer egy meglévő fájl törlésére szolgál. |