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.

  1. Olvasás – Ez a művelet az alapvető olvasási művelet, amelyben az adatok egy fájlból kerülnek kiolvasásra.
  2. Í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.
  3. 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.

A fájl létezik

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: -

  1. Először beállítunk egy karakterlánc-változót, amely az Example.txt fájl elérési útját tartalmazza.
  2. 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.
  3. 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 fájl létezik

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.

File.ReadAlllines

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: -

  1. 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.
  2. 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.
  3. 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:-

File.ReadAlllines

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.

File.ReadAllText

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: -

  1. 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.
  2. 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.
  3. 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:-

File.ReadAllText

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.

Fájl.Másolás

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: -

  1. 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.
  2. 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.
  3. 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.

Fájl.Törlés

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: -

  1. 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.
  2. 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.