Rukovanje datotekama u C#: I/O Operations [Primjeri]

⚡ Pametni sažetak

C# operacije s datotekama omogućuju vam čitanje, pisanje, kopiranje i brisanje datoteka pomoću imenskog prostora System.IO. Ovdje ćete naučiti koristiti File.Exists, File.ReadAllLines, File.ReadAllText, File.Copy i File.Delete s jasnim primjerima koda.

  • 📂 Što je to: C# operacije s datotekama čitaju, pišu, kopiraju i brišu datoteke putem imenskog prostora System.IO.
  • Datoteka.Postoji: File.Exists(path) provjerava je li datoteka prisutna prije nego što je pročitate ili izbrišete.
  • ???? Čitanje: File.ReadAllLines vraća niz stringova, dok File.ReadAllText vraća cijelu datoteku kao jedan string.
  • 📋 Kopiraj i izbriši: File.Copy duplicira datoteku na novu putanju, a File.Delete je uklanja.
  • 🤖 Pomoć umjetne inteligencije: Alati umjetne inteligencije poput GitHub Copilota trenutno generiraju C# kod za rukovanje datotekama.

C# datoteka Operama

C# ima široku lepezu operacija s datotekama. Ove operacije uključuju otvaranje datoteke, čitanje ili pisanje u datoteku. Mogu postojati slučajevi u kojima želite izravno raditi s datotekama, u kojem biste slučaju koristili operacije s datotekama dostupne u C#. Neke od osnovnih radnji s datotekama navedene su u nastavku.

  1. Čitanje – Ova operacija je osnovna operacija čitanja u kojoj se podaci čitaju iz datoteke.
  2. Zapisivanje – Ova operacija je osnovna operacija pisanja u kojoj se podaci zapisuju u datoteku. Prema zadanim postavkama, svi postojeći sadržaji se uklanjaju iz datoteke i piše se novi sadržaj.
  3. Dodavanje – Ova operacija također uključuje pisanje informacija u datoteku. Jedina je razlika u tome što se postojeći podaci u datoteci ne prebrišu. Novi podaci koji se upisuju dodaju se na kraj datoteke.

Osnove I/O naredbi

C# i .Net mogu raditi s datotekama uz pomoć nekoliko File I/O naredbi. Pogledajmo neke od ovih naredbi. Za naš primjer, pretpostavit ćemo da imamo datoteku na D disku pod nazivom Example.txt.
Datoteka će biti jednostavna tekstualna datoteka i imati 2 retka kao što je prikazano u nastavku

  • Guru99 – .Net
  • Guru99 -C#

Za naš primjer, izradit ćemo jednostavnu konzolnu aplikaciju i raditi s našim I/O naredbama za datoteke. Konzolna aplikacija je osnovna koja je stvorena u prethodnom vodiču. U konzolnoj aplikaciji sav se kod zapisuje u datoteku program.cs.

Dokument postoji

Metoda Datoteka postoji koristi se za provjeru postoji li određena datoteka. Dakle, sada da vidimo kod koji se može koristiti za provjeru postoji li naša datoteka Example.txt ili ne. Unesite donji kod u datoteku program.cs.

Dokument postoji

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();
  }
 }
}

Code Obrazloženje:-

  1. Prvo, postavljamo string varijablu sa stazom do naše datoteke Example.txt.
  2. Zatim koristimo metodu File.Exists da provjerimo postoji li datoteka ili ne. Ako datoteka postoji, bit će vraćena prava vrijednost.
  3. Ako dobijemo pravu vrijednost i datoteka postoji, ispisujemo poruku "Datoteka postoji" na konzoli.

Kada se gornji kod postavi i projekt se izvede pomoću Visual Studio-a, dobit ćete donji izlaz.

Izlaz:-

Dokument postoji

Iz gornjeg izlaza možete vidjeti da je naredba File.Exists uspješno izvršena i da je ispravna poruka prikazana u prozoru konzole.

File.ReadAlllines

Metoda se koristi za čitanje svih redaka jedan po jedan u datoteci. Linije se zatim pohranjuju u varijablu niza znakova. Pogledajmo primjer. Unesite donji kod u datoteku program.cs.

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();
  }
 }
}

Code Obrazloženje:-

  1. Prvo, deklariramo varijablu niza znakova. Ovo će se koristiti za pohranjivanje rezultata koji će vratiti metoda File.ReadAllLines.
  2. Zatim koristimo metodu File.ReadAllLines za čitanje svih redaka iz naše tekstualne datoteke. Rezultat se zatim prosljeđuje varijabli lines.
  3. Budući da znamo da naša datoteka sadrži samo 2 retka, možemo pristupiti vrijednosti varijabli niza putem naredbi lines[0] i lines[1].

Kada je gornji kod postavljen i projekt se izvodi pomoću Visual Studio, dobit ćete donji izlaz.

Izlaz:-

File.ReadAlllines

Iz izlaza možete vidjeti da je naredba File.ReadAllLines vratila oba retka iz naše datoteke Example.txt

File.ReadAllText

Ova se metoda koristi za čitanje svih redaka u datoteci odjednom. Linije se zatim spremaju u varijablu niza. Pogledajmo primjer. Unesite donji kod u datoteku program.cs.

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();
   }
  }
}

Code Obrazloženje:-

  1. Prvo, deklariramo string varijablu koja se zove Lines. Ovo će se koristiti za pohranjivanje rezultata koji će vratiti metoda File.ReadAllText.
  2. Zatim koristimo metodu File.ReadAllText za čitanje svih redaka iz naše tekstualne datoteke. Rezultat se zatim prosljeđuje varijabli lines.
  3. Možemo izravno koristiti metodu Console.Writeline za prikaz vrijednosti varijable Lines.

Kada se gornji kod postavi i projekt se pokrene pomoću Visual Studija, dobit ćete donji izlaz.

Izlaz:-

File.ReadAllText

Iz izlaza možete vidjeti da je naredba File.ReadAlltext vratila oba retka iz naše datoteke Example.txt

Datoteka.Kopiraj

Metoda se koristi za izradu kopije postojeće datoteke. Pogledajmo primjer. Unesite donji kod u datoteku program.cs.

Datoteka.Kopiraj

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();
   }
  }
}

Code Obrazloženje:-

  1. Prvo, deklariramo string varijablu koja se zove put. Ovo će biti mjesto naše datoteke Example.txt. Ova će datoteka biti izvorna datoteka korištena za operaciju kopiranja.
  2. Zatim deklariramo string varijablu koja se zove copypath. Ovo će biti mjesto nove datoteke pod nazivom ExampleNew.txt datoteka. Ovo će biti odredišna datoteka u koju će biti upisan sadržaj iz izvorne datoteke Example.txt.
  3. Zatim pozivamo metodu File.Copy za kopiranje datoteke Example.txt u datoteku ExampleNew.txt.

Kada se gornji kôd postavi i projekt se pokrene pomoću Visual Studija, datoteka Example.txt kopirat će se u ExampleNew.txt.

File.Delete

Metoda se koristi za brisanje postojeće datoteke. Pogledajmo primjer. Unesite donji kod u datoteku program.cs.

File.Delete

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();
   }
  }
}

Code Obrazloženje:-

  1. Prvo, deklariramo string varijablu koja se zove put. Ovo će biti mjesto naše datoteke Example.txt. Ovo je datoteka koja će biti izbrisana.
  2. Zatim pozivamo metodu File.Delete za brisanje datoteke.

Kada se gornji kôd postavi i projekt se pokrene pomoću Visual Studio, datoteka Example.txt bit će izbrisana s D pogona.

Referenca metoda C# datoteka

Donja tablica sažima glavne C# metode datoteka i što svaka od njih radi.

Metoda datoteke Description
Dokument postoji Datoteka postoji metoda se koristi za provjeru postoji li određena datoteka.
File.ReadAlllines Metoda se koristi za čitanje svih redaka jedan po jedan u datoteci.
File.ReadAllText Ova se metoda koristi za čitanje svih redaka u datoteci odjednom.
Datoteka.Kopiraj Metoda se koristi za izradu kopije postojeće datoteke.
File.Delete Metoda se koristi za brisanje postojeće datoteke.

Pitanja i odgovori

C# operacije s datotekama omogućuju vam čitanje, pisanje, kopiranje, dodavanje i brisanje datoteka. Većina metoda pripada klasi System.IO.File, kao što su File.Exists, File.ReadAllText, File.Copy i File.Delete.

Koristite File.Exists(path), koja vraća true kada datoteka postoji, a false u suprotnom. Provjerite je prije čitanja ili brisanja datoteke kako biste izbjegli iznimke tijekom izvođenja.

File.ReadAllLines vraća svaki redak kao element niza stringova, dok File.ReadAllText vraća cijeli sadržaj datoteke kao jedan string.

Pozovite File.Copy(sourcePath, destinationPath). Stvara novu datoteku na odredištu koja sadrži sadržaj izvorne datoteke.

Pozovite File.Delete(path). Trajno uklanja datoteku, stoga prvo provjerite njezino postojanje s File.Exists kako biste izbjegli FileNotFoundException.

AI asistenti poput GitHub Copilota automatski dovršavaju pozive File.ReadAllText, File.Copy i File.Delete te generiraju try-catch kod za rukovanje datotekama iz kratkog komentara koji opisuje zadatak.

Da. Alati pokretani umjetnom inteligencijom generiraju metode za čitanje i pisanje, predlažu metode StreamReader ili File i dodaju obradu iznimki kako bi vaš kod bio sigurniji.

Dodajte pomoću System.IO; na vrhu vašeg programa. Imenski prostor System.IO sadrži File, StreamReader i Stream.Writer klase koje se koriste za rukovanje datotekama.

Sažmite ovu objavu uz: