Práce se soubory v C#: I/O Operations [Příklady]

⚡ Chytré shrnutí

Souborové operace v jazyce C# umožňují číst, zapisovat, kopírovat a mazat soubory pomocí jmenného prostoru System.IO. Zde se naučíte používat File.Exists, File.ReadAllLines, File.ReadAllText, File.Copy a File.Delete s přehlednými příklady kódu.

  • 📂 Co to je: Operace se soubory v jazyce C# čtou, zapisují, kopírují a odstraňují soubory prostřednictvím jmenného prostoru System.IO.
  • (Tj. Soubor.Existuje: Funkce File.Exists(path) před přečtením nebo smazáním souboru zkontroluje, zda je soubor přítomen.
  • 📖 Čtení: File.ReadAllLines vrací pole řetězců, zatímco File.ReadAllText vrací celý soubor jako jeden řetězec.
  • ???? Kopírovat a smazat: File.Copy duplikuje soubor do nové cesty a File.Delete jej odstraní.
  • 🤖 Pomoc s umělou inteligencí: Nástroje umělé inteligence, jako je GitHub Copilot, generují kód C# pro práci se soubory okamžitě.

Soubor C# Operace

C# má širokou škálu operací se soubory. Tyto operace zahrnují otevření souboru, čtení nebo zápis do souboru. Mohou nastat případy, kdy chcete pracovat se soubory přímo, v takovém případě byste použili operace se soubory dostupné v C#. Některé ze základních operací se soubory jsou uvedeny níže.

  1. Čtení – Tato operace je základní čtecí operací, při které se načítají data ze souboru.
  2. Zápis – Tato operace je základní operací zápisu, při které se data zapisují do souboru. Ve výchozím nastavení je veškerý existující obsah ze souboru odstraněn a je zapsán nový obsah.
  3. Připojení – Tato operace také zahrnuje zápis informací do souboru. Jediný rozdíl je v tom, že stávající data v souboru nejsou přepsána. Nová data, která mají být zapsána, jsou přidána na konec souboru.

Základní I/O příkazy

C# a .Net umí pracovat se soubory pomocí několika příkazů File I/O. Pojďme se podívat na některé z těchto příkazů. Pro náš příklad budeme předpokládat, že máme na jednotce D soubor s názvem Example.txt.
Soubor bude jednoduchý textový soubor a bude mít 2 řádky, jak je uvedeno níže

  • Guru99 – .Net
  • Guru99 -C#

Pro náš příklad vytvoříme jednoduchou aplikaci Console a budeme pracovat s našimi příkazy File I/O. Konzolová aplikace je základní aplikací, která byla vytvořena v dřívějším tutoriálu. V konzolové aplikaci je veškerý kód zapsán do souboru program.cs.

Soubor existuje

Metoda Soubor existuje se používá ke kontrole, zda konkrétní soubor existuje. Nyní se tedy podívejme na kód, který lze použít ke kontrole, zda náš soubor Example.txt existuje nebo ne. Zadejte níže uvedený kód do souboru program.cs.

Soubor existuje

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 Vysvětlení:-

  1. Nejprve nastavujeme řetězcovou proměnnou s cestou k našemu souboru Example.txt.
  2. Dále použijeme metodu File.Exists ke kontrole, zda soubor existuje nebo ne. Pokud soubor existuje, bude vrácena hodnota true.
  3. Pokud získáme hodnotu true a soubor existuje, zapíšeme do konzole zprávu „File Exists“.

Když je nastaven výše uvedený kód a projekt je spuštěn pomocí sady Visual Studio, získáte níže uvedený výstup.

Výstup:-

Soubor existuje

Z výše uvedeného výstupu můžete vidět, že příkaz File.Exists byl úspěšně proveden a v okně konzoly se zobrazila správná zpráva.

File.ReadAlllines

Metoda se používá ke čtení všech řádků jeden po druhém v souboru. Řádky jsou pak uloženy v proměnné pole řetězců. Podívejme se na příklad. Zadejte níže uvedený kód do souboru 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 Vysvětlení:-

  1. Nejprve deklarujeme proměnnou pole řetězců. To bude použito k uložení výsledku, který bude vrácen metodou File.ReadAllLines.
  2. Dále použijeme metodu File.ReadAllLines k přečtení všech řádků z našeho textového souboru. Výsledek je pak předán do proměnné lines.
  3. Protože víme, že náš soubor obsahuje pouze 2 řádky, můžeme k hodnotě proměnných pole přistupovat pomocí příkazu lines[0] a lines[1].

Když je nastaven výše uvedený kód a projekt je spuštěn pomocí Visual Studio, získáte níže uvedený výstup.

Výstup:-

File.ReadAlllines

Z výstupu můžete vidět, že příkaz File.ReadAllLines vrátil oba řádky z našeho souboru Example.txt

File.ReadAllText

Tato metoda se používá ke čtení všech řádků v souboru najednou. Řádky jsou pak uloženy v řetězcové proměnné. Podívejme se na příklad. Zadejte níže uvedený kód do souboru 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 Vysvětlení:-

  1. Nejprve deklarujeme řetězcovou proměnnou s názvem Lines. To bude použito k uložení výsledku, který bude vrácen metodou File.ReadAllText.
  2. Dále použijeme metodu File.ReadAllText k přečtení všech řádků z našeho textového souboru. Výsledek je pak předán do proměnné lines.
  3. Pro zobrazení hodnoty proměnné Lines můžeme přímo použít metodu Console.Writeline.

Když je nastaven výše uvedený kód a projekt je spuštěn pomocí sady Visual Studio, získáte níže uvedený výstup.

Výstup:-

File.ReadAllText

Z výstupu můžete vidět, že příkaz File.ReadAlltext vrátil oba řádky z našeho souboru Example.txt

Soubor.Kopírovat

Metoda se používá k vytvoření kopie existujícího souboru. Podívejme se na příklad. Zadejte níže uvedený kód do souboru program.cs.

Soubor.Kopírovat

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 Vysvětlení:-

  1. Nejprve deklarujeme řetězcovou proměnnou s názvem path. Toto bude umístění našeho souboru Example.txt. Tento soubor bude zdrojovým souborem použitým pro operaci kopírování.
  2. Dále deklarujeme řetězcovou proměnnou nazvanou copypath. Toto bude umístění nového souboru s názvem ExampleNew.txt file. Toto bude cílový soubor, do kterého bude obsah zapsán ze zdrojového souboru Example.txt.
  3. Poté zavoláme metodu File.Copy pro zkopírování souboru Example.txt do souboru ExampleNew.txt.

Když je nastaven výše uvedený kód a projekt je spuštěn pomocí sady Visual Studio, soubor Example.txt se zkopíruje do ExampleNew.txt.

Soubor.Odstranit

Metoda se používá k odstranění existujícího souboru. Podívejme se na příklad. Zadejte níže uvedený kód do souboru program.cs.

Soubor.Odstranit

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 Vysvětlení:-

  1. Nejprve deklarujeme řetězcovou proměnnou s názvem path. Toto bude umístění našeho souboru Example.txt. Toto je soubor, který bude smazán.
  2. Dále zavoláme metodu File.Delete k odstranění souboru.

Po nastavení výše uvedeného kódu a spuštění projektu pomocí sady Visual Studio bude soubor Example.txt z jednotky D odstraněn.

Referenční příručka metod souborů C#

Níže uvedená tabulka shrnuje hlavní metody souborů C# a jejich funkce.

Metoda souboru Description
Soubor existuje Metoda File exists se používá ke kontrole, zda konkrétní soubor existuje.
File.ReadAlllines Metoda se používá ke čtení všech řádků jeden po druhém v souboru.
File.ReadAllText Tato metoda se používá ke čtení všech řádků v souboru najednou.
Soubor.Kopírovat Metoda se používá k vytvoření kopie existujícího souboru.
Soubor.Odstranit Metoda se používá k odstranění existujícího souboru.

Nejčastější dotazy

Souborové operace v jazyce C# umožňují číst, zapisovat, kopírovat, přidávat a mazat soubory. Většina metod patří do třídy System.IO.File, například File.Exists, File.ReadAllText, File.Copy a File.Delete.

Použijte File.Exists(cesta), která vrací hodnotu true, pokud soubor existuje, a false jinak. Před čtením nebo smazáním souboru ji zkontrolujte, abyste se vyhnuli výjimkám za běhu.

File.ReadAllLines vrací každý řádek jako prvek pole řetězců, zatímco File.ReadAllText vrací celý obsah souboru jako jeden řetězec.

Voláním metody File.Copy(sourcePath, destinationPath) se v cílovém umístění vytvoří nový soubor obsahující obsah zdrojového souboru.

Voláním metody File.Delete(path) se soubor trvale odstraní, proto nejprve ověřte jeho existenci metodou File.Exists, abyste se vyhnuli výjimce FileNotFoundException.

Asistenti s umělou inteligencí, jako je například GitHub Copilot, automaticky dokončují volání File.ReadAllText, File.Copy a File.Delete a generují kód pro práci se soubory z krátkého komentáře popisujícího daný úkol.

Ano. Nástroje s umělou inteligencí generují metody pro čtení a zápis, navrhují metody StreamReader nebo File a přidávají ošetření výjimek, aby byl váš kód bezpečnější.

Přidejte pomocí System.IO; na začátek programu. Jmenný prostor System.IO obsahuje File, StreamReader a Stream.Writer třídy používané pro práci se soubory.

Shrňte tento příspěvek takto: