Obsługa plików w C#: I/O Operacje [Przykłady]
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.
- Odczyt – podstawowa operacja odczytu, w której dane są odczytywane z pliku.
- 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.
- 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.
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(); } } }
Wyjaśnienie kodu: -
- Najpierw ustawiamy zmienną łańcuchową ze ścieżką do naszego pliku Przykład.txt.
- Następnie używamy metody File.Exists, aby sprawdzić, czy plik istnieje, czy nie. Jeśli plik istnieje, zwrócona zostanie wartość prawdziwa.
- 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:-
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.
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(); } } }
Wyjaśnienie kodu: -
- Najpierw deklarujemy zmienną tablicową typu string. Będzie to służyć do przechowywania wyniku, który zostanie zwrócony przez metodę File.ReadAllLines.
- Następnie za pomocą metody File.ReadAllLines odczytujemy wszystkie linie z naszego pliku tekstowego. Wynik jest następnie przekazywany do zmiennejlines.
- 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:-
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.
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(); } } }
Wyjaśnienie kodu: -
- 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.
- Następnie za pomocą metody File.ReadAllText odczytujemy wszystkie linie z naszego pliku tekstowego. Wynik jest następnie przekazywany do zmiennejlines.
- 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:-
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.
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(); } } }
Wyjaśnienie kodu: -
- 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.
- 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.
- 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.
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(); } } }
Wyjaśnienie kodu: -
- 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.
- 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.
Podsumowanie
- C# ma szereg operacji File, które można wykonywać na plikach. Większość tych operacji jest częścią klasy File.
- Jeśli chcesz odczytać dane z pliku, możesz skorzystać z metod File.ReadAlltext lub File.ReadAllLines.
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. |