Obsługa plików w C#: I/O Operacje [Przykłady]

⚡ Inteligentne podsumowanie

Operacje na plikach w języku C# pozwalają odczytywać, zapisywać, kopiować i usuwać pliki za pomocą przestrzeni nazw System.IO. Tutaj nauczysz się używać File.Exists, File.ReadAllLines, File.ReadAllText, File.Copy i File.Delete z przejrzystymi przykładami kodu.

  • 📂 Co to jest: Operacje na plikach C# umożliwiają odczyt, zapis, kopiowanie i usuwanie plików za pośrednictwem przestrzeni nazw System.IO.
  • Plik.Istnieje: File.Exists(path) sprawdza, czy plik istnieje przed jego odczytaniem lub usunięciem.
  • ???? Czytanie: File.ReadAllLines zwraca tablicę ciągów znaków, natomiast File.ReadAllText zwraca cały plik jako jeden ciąg znaków.
  • 📋 Kopiuj i usuń: File.Copy kopiuje plik do nowej ścieżki, a File.Delete usuwa go.
  • 🤖 Pomoc AI: Narzędzia AI, takie jak GitHub Copilot, natychmiast generują kod obsługi plików w języku C#.

Plik C# Operanych

C# ma szeroki wachlarz operacji na plikach. Operacje te obejmują otwieranie pliku, odczytywanie lub zapisywanie do pliku. Mogą zdarzyć się sytuacje, w których chcesz pracować bezpośrednio z plikami, w takim przypadku użyjesz operacji na plikach dostępnych w C#. Niektóre podstawowe operacje na plikach są wymienione poniżej.

  1. Odczyt – podstawowa operacja odczytu, w której dane są odczytywane z pliku.
  2. Pisanie – Ta operacja jest podstawową operacją zapisu, w której dane są zapisywane do pliku. Domyślnie cała istniejąca zawartość jest usuwana z pliku, a nowa zawartość jest zapisywana.
  3. Appending – Ta operacja również obejmuje zapisywanie informacji do pliku. Jedyną różnicą jest to, że istniejące dane w pliku nie są nadpisywane. Nowe dane do zapisania są dodawane na końcu pliku.

Podstawowe polecenia we/wy

C# i .Net mogą pracować z plikami za pomocą kilku poleceń we/wy plików. Przyjrzyjmy się niektórym z tych poleceń. W naszym przykładzie założymy, że mamy plik na dysku D o nazwie Przykład.txt.
Plik będzie prostym plikiem tekstowym i będzie zawierał 2 linie, jak pokazano poniżej

  • Guru99 – .Net
  • Guru99-C#

W naszym przykładzie utworzymy prostą aplikację konsolową i będziemy pracować z poleceniami wejścia/wyjścia plików. Aplikacja konsolowa jest aplikacją podstawową, która została stworzona we wcześniejszym tutorialu. W aplikacji konsolowej cały kod jest zapisywany w pliku program.cs.

Plik istnieje

Metoda File istnieje służy do sprawdzenia, czy dany plik istnieje. Przyjrzyjmy się teraz kodowi, za pomocą którego można sprawdzić, czy nasz plik Przykład.txt istnieje, czy nie. Wpisz poniższy kod w pliku program.cs.

Plik istnieje

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 Wyjaśnienie:-

  1. Najpierw ustawiamy zmienną łańcuchową ze ścieżką do naszego pliku Przykład.txt.
  2. Następnie używamy metody File.Exists, aby sprawdzić, czy plik istnieje, czy nie. Jeśli plik istnieje, zwrócona zostanie wartość prawdziwa.
  3. Jeśli otrzymamy wartość true i plik rzeczywiście istnieje, to piszemy do konsoli komunikat „Plik istnieje”.

Po ustawieniu powyższego kodu i uruchomieniu projektu za pomocą programu Visual Studio otrzymasz poniższy wynik.

Wynik:-

Plik istnieje

Z powyższego wyniku widać, że polecenie File.Exists zostało wykonane pomyślnie, a w oknie konsoli został wyświetlony prawidłowy komunikat.

Plik.ReadAlllines

Metoda ta służy do odczytywania po kolei wszystkich wierszy pliku. Linie są następnie zapisywane w zmiennej tablicowej typu string. Spójrzmy na przykład. Wpisz poniższy kod w pliku program.cs.

Plik.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 Wyjaśnienie:-

  1. Najpierw deklarujemy zmienną tablicową typu string. Będzie to służyć do przechowywania wyniku, który zostanie zwrócony przez metodę File.ReadAllLines.
  2. Następnie za pomocą metody File.ReadAllLines odczytujemy wszystkie linie z naszego pliku tekstowego. Wynik jest następnie przekazywany do zmiennejlines.
  3. Ponieważ wiemy, że nasz plik zawiera tylko 2 linie, możemy uzyskać dostęp do wartości zmiennych tablicowych za pomocą poleceń linie[0] i linie[1].

Gdy powyższy kod jest ustawiony, a projekt jest uruchamiany przy użyciu visual Studio, otrzymasz poniższe dane wyjściowe.

Wynik:-

Plik.ReadAlllines

Z danych wyjściowych widać, że polecenie File.ReadAllLines zwróciło obie linie z naszego pliku Przykład.txt

Plik.ReadAllText

Ta metoda służy do jednoczesnego odczytania wszystkich wierszy pliku. Linie są następnie zapisywane w zmiennej łańcuchowej. Spójrzmy na przykład. Wpisz poniższy kod w pliku program.cs.

Plik.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 Wyjaśnienie:-

  1. Najpierw deklarujemy zmienną łańcuchową o nazwie Lines. Będzie to służyć do przechowywania wyniku, który zostanie zwrócony przez metodę File.ReadAllText.
  2. Następnie za pomocą metody File.ReadAllText odczytujemy wszystkie linie z naszego pliku tekstowego. Wynik jest następnie przekazywany do zmiennejlines.
  3. Możemy bezpośrednio użyć metody Console.Writeline do wyświetlenia wartości zmiennej Lines.

Po ustawieniu powyższego kodu i uruchomieniu projektu za pomocą programu Visual Studio otrzymasz poniższy wynik.

Wynik:-

Plik.ReadAllText

Z danych wyjściowych widać, że polecenie File.ReadAlltext zwróciło obie linie z naszego pliku Przykład.txt

Plik.Kopiuj

Metoda służy do wykonania kopii istniejącego pliku. Spójrzmy na przykład. Wpisz poniższy kod w pliku program.cs.

Plik.Kopiuj

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 Wyjaśnienie:-

  1. Najpierw deklarujemy zmienną typu string o nazwie path. Będzie to lokalizacja naszego pliku Example.txt. Ten plik będzie plikiem źródłowym używanym do operacji kopiowania.
  2. Następnie deklarujemy zmienną łańcuchową zwaną copypath. Będzie to lokalizacja nowego pliku o nazwie plik PrzykładNew.txt. Będzie to plik docelowy, w którym zostanie zapisana zawartość z pliku źródłowego Przykład.txt.
  3. Następnie wywołujemy metodę File.Copy w celu skopiowania pliku Przykład.txt do pliku PrzykładNew.txt.

Po ustawieniu powyższego kodu i uruchomieniu projektu przy użyciu programu Visual Studio plik Example.txt zostanie skopiowany do ExampleNew.txt.

Plik.Usuń

Metoda służy do usunięcia istniejącego pliku. Spójrzmy na przykład. Wpisz poniższy kod w pliku program.cs.

Plik.Usuń

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 Wyjaśnienie:-

  1. Najpierw deklarujemy zmienną łańcuchową zwaną ścieżką. Będzie to lokalizacja naszego pliku Przykład.txt. To jest plik, który zostanie usunięty.
  2. Następnie wywołujemy metodę File.Delete w celu usunięcia pliku.

Po ustawieniu powyższego kodu i uruchomieniu projektu przy użyciu programu Visual Studio plik Example.txt zostanie usunięty z dysku D.

Odwołanie do metod plików C#

Poniższa tabela podsumowuje główne metody plików języka C# i ich działanie.

Metoda pliku OPIS
Plik istnieje Metoda „plik istnieje” służy do sprawdzania, czy dany plik istnieje.
Plik.ReadAlllines Metoda ta służy do odczytywania po kolei wszystkich wierszy pliku.
Plik.ReadAllText Ta metoda służy do jednoczesnego odczytania wszystkich wierszy pliku.
Plik.Kopiuj Metoda służy do wykonania kopii istniejącego pliku.
Plik.Usuń Metoda służy do usunięcia istniejącego pliku.

FAQ

Operacje na plikach w języku C# umożliwiają odczyt, zapis, kopiowanie, dołączanie i usuwanie plików. Większość metod należy do klasy System.IO.File, na przykład File.Exists, File.ReadAllText, File.Copy i File.Delete.

Użyj File.Exists(path), która zwraca wartość true, gdy plik istnieje, i false w przeciwnym razie. Sprawdź to przed odczytaniem lub usunięciem pliku, aby uniknąć wyjątków w czasie wykonywania.

File.ReadAllLines zwraca każdy wiersz jako element tablicy ciągów znaków, natomiast File.ReadAllText zwraca całą zawartość pliku jako pojedynczy ciąg znaków.

Wywołaj File.Copy(sourcePath, destinationPath). Tworzy ona nowy plik w miejscu docelowym, zawierający zawartość pliku źródłowego.

Wywołaj File.Delete(path). Trwale usunie plik, więc najpierw potwierdź jego istnienie za pomocą File.Exists, aby uniknąć wyjątku FileNotFoundException.

Asystenci AI, tacy jak GitHub Copilot, automatycznie uzupełniają wywołania File.ReadAllText, File.Copy i File.Delete i generują kod obsługi plików try-catch na podstawie krótkiego komentarza opisującego zadanie.

Tak. Narzędzia oparte na sztucznej inteligencji generują metody odczytu i zapisu, sugerują metody StreamReader lub File oraz dodają obsługę wyjątków, dzięki czemu Twój kod jest bezpieczniejszy.

Dodaj using System.IO; na górze swojego programu. Przestrzeń nazw System.IO zawiera nazwy File, StreamReader i Stream.Writer klasy używane do obsługi plików.

Podsumuj ten post następująco: