Χειρισμός αρχείων σε C#: I/O Operations [Παραδείγματα]

Το C# έχει ένα ευρύ φάσμα λειτουργιών αρχείων. Αυτές οι λειτουργίες περιλαμβάνουν το άνοιγμα ενός αρχείου, την ανάγνωση ή την εγγραφή σε ένα αρχείο. Μπορεί να υπάρχουν περιπτώσεις όπου θέλετε να εργαστείτε απευθείας με αρχεία, οπότε θα χρησιμοποιούσατε τις λειτουργίες αρχείων που είναι διαθέσιμες στο C#. Μερικές από τις βασικές λειτουργίες αρχείων αναφέρονται παρακάτω.

  1. Ανάγνωση – Αυτή η λειτουργία είναι η βασική λειτουργία ανάγνωσης κατά την οποία τα δεδομένα διαβάζονται από ένα αρχείο.
  2. Εγγραφή – Αυτή η λειτουργία είναι η βασική λειτουργία εγγραφής κατά την οποία τα δεδομένα εγγράφονται σε ένα αρχείο. Από προεπιλογή, όλα τα υπάρχοντα περιεχόμενα αφαιρούνται από το αρχείο και γράφεται νέο περιεχόμενο.
  3. Προσάρτηση – Αυτή η λειτουργία περιλαμβάνει επίσης την εγγραφή πληροφοριών σε ένα αρχείο. Η μόνη διαφορά είναι ότι τα υπάρχοντα δεδομένα σε ένα αρχείο δεν αντικαθίστανται. Τα νέα δεδομένα που θα γραφτούν προστίθενται στο τέλος του αρχείου.

Βασικές εντολές εισόδου/εξόδου

Το C# και το .Net μπορούν να λειτουργήσουν με αρχεία με τη βοήθεια πολλών εντολών File I/O. Ας ρίξουμε μια ματιά σε μερικές από αυτές τις εντολές. Για το παράδειγμά μας, θα υποθέσουμε ότι έχουμε ένα αρχείο στη μονάδα δίσκου D που ονομάζεται Example.txt.
Το αρχείο θα είναι ένα απλό αρχείο κειμένου και θα έχει 2 γραμμές όπως φαίνεται παρακάτω

  • Guru99 – .Net
  • Guru99 -C#

Για το παράδειγμά μας, θα δημιουργήσουμε μια απλή εφαρμογή Κονσόλας και θα εργαστούμε με τις εντολές File I/O. Η εφαρμογή κονσόλας είναι η βασική που δημιουργήθηκε στο προηγούμενο σεμινάριο. Στην εφαρμογή της κονσόλας, όλος ο κώδικας γράφεται στο αρχείο program.cs.

Το αρχείο υπάρχει

Η μέθοδος File υπάρχει χρησιμοποιείται για να ελέγξει εάν υπάρχει ένα συγκεκριμένο αρχείο. Ας δούμε λοιπόν τον κώδικα που μπορεί να χρησιμοποιηθεί για να ελέγξουμε εάν το αρχείο Example.txt υπάρχει ή όχι. Εισαγάγετε τον παρακάτω κώδικα στο αρχείο 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();
  }
 }
}

Επεξήγηση κώδικα: -

  1. Αρχικά, ορίζουμε μια μεταβλητή συμβολοσειράς με τη διαδρομή προς το αρχείο Example.txt.
  2. Στη συνέχεια, χρησιμοποιούμε τη μέθοδο File.Exists για να ελέγξουμε εάν το αρχείο υπάρχει ή όχι. Εάν υπάρχει το Αρχείο, θα επιστραφεί μια πραγματική τιμή.
  3. Εάν λάβουμε μια πραγματική τιμή και το αρχείο υπάρχει, τότε γράφουμε το μήνυμα "File Exists" στην κονσόλα.

Όταν οριστεί ο παραπάνω κώδικας και το έργο εκτελεστεί χρησιμοποιώντας το Visual Studio, θα λάβετε την παρακάτω έξοδο.

Παραγωγή:-

Το αρχείο υπάρχει

Από την παραπάνω έξοδο, μπορείτε να δείτε ότι η εντολή File.Exists εκτελέστηκε με επιτυχία και εμφανίστηκε το σωστό μήνυμα στο παράθυρο της κονσόλας.

Αρχείο.ReadAlllines

Η μέθοδος χρησιμοποιείται για την ανάγνωση όλων των γραμμών μία προς μία σε ένα αρχείο. Στη συνέχεια, οι γραμμές αποθηκεύονται σε μια μεταβλητή πίνακα συμβολοσειρών. Ας δούμε ένα παράδειγμα. Εισαγάγετε τον παρακάτω κώδικα στο αρχείο program.cs.

Αρχείο.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();
  }
 }
}

Επεξήγηση κώδικα: -

  1. Αρχικά, δηλώνουμε μια μεταβλητή πίνακα συμβολοσειρών. Αυτό θα χρησιμοποιηθεί για την αποθήκευση του αποτελέσματος που θα επιστραφεί με τη μέθοδο File.ReadAllLines.
  2. Στη συνέχεια, χρησιμοποιούμε τη μέθοδο File.ReadAllLines για να διαβάσουμε όλες τις γραμμές από το αρχείο κειμένου μας. Το αποτέλεσμα περνά στη μεταβλητή γραμμών.
  3. Εφόσον γνωρίζουμε ότι το αρχείο μας περιέχει μόνο 2 γραμμές, μπορούμε να έχουμε πρόσβαση στην τιμή των μεταβλητών του πίνακα μέσω της εντολής γραμμές[0] και γραμμές[1].

Όταν οριστεί ο παραπάνω κώδικας και το έργο εκτελείται χρησιμοποιώντας Visual Studio, θα λάβετε την παρακάτω έξοδο.

Παραγωγή:-

Αρχείο.ReadAlllines

Από την έξοδο, μπορείτε να δείτε ότι η εντολή File.ReadAllLines επέστρεψε και τις δύο γραμμές από το αρχείο μας Example.txt

Αρχείο.ReadAllText

Αυτή η μέθοδος χρησιμοποιείται για την ταυτόχρονη ανάγνωση όλων των γραμμών σε ένα αρχείο. Στη συνέχεια, οι γραμμές αποθηκεύονται σε μια μεταβλητή συμβολοσειράς. Ας δούμε ένα παράδειγμα. Εισαγάγετε τον παρακάτω κώδικα στο αρχείο program.cs.

Αρχείο.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();
   }
  }
}

Επεξήγηση κώδικα: -

  1. Αρχικά, δηλώνουμε μια μεταβλητή συμβολοσειράς που ονομάζεται Γραμμές. Αυτό θα χρησιμοποιηθεί για την αποθήκευση του αποτελέσματος που θα επιστραφεί με τη μέθοδο File.ReadAllText.
  2. Στη συνέχεια, χρησιμοποιούμε τη μέθοδο File.ReadAllText για να διαβάσουμε όλες τις γραμμές από το αρχείο κειμένου μας. Το αποτέλεσμα περνά στη μεταβλητή γραμμών.
  3. Μπορούμε να χρησιμοποιήσουμε απευθείας τη μέθοδο Console.Writeline για να εμφανίσουμε την τιμή της μεταβλητής Lines.

Όταν οριστεί ο παραπάνω κώδικας και το έργο εκτελείται χρησιμοποιώντας το Visual Studio, θα λάβετε την παρακάτω έξοδο.

Παραγωγή:-

Αρχείο.ReadAllText

Από την έξοδο, μπορείτε να δείτε ότι η εντολή File.ReadAlltext επέστρεψε και τις δύο γραμμές από το αρχείο μας Example.txt

Αρχείο.Αντιγραφή

Η μέθοδος χρησιμοποιείται για τη δημιουργία αντιγράφου ενός υπάρχοντος αρχείου. Ας δούμε ένα παράδειγμα. Εισαγάγετε τον παρακάτω κώδικα στο αρχείο 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();
   }
  }
}

Επεξήγηση κώδικα: -

  1. Αρχικά, δηλώνουμε μια μεταβλητή συμβολοσειράς που ονομάζεται path. Αυτή θα είναι η θέση του αρχείου μας Example.txt. Αυτό το αρχείο θα είναι το αρχείο προέλευσης που χρησιμοποιείται για τη λειτουργία αντιγραφής.
  2. Στη συνέχεια, δηλώνουμε μια μεταβλητή συμβολοσειράς που ονομάζεται copypath. Αυτή θα είναι η θέση ενός νέου αρχείου που ονομάζεται αρχείο ExampleNew.txt. Αυτό θα είναι το αρχείο προορισμού στο οποίο θα γραφτούν τα περιεχόμενα από το αρχείο προέλευσης Example.txt.
  3. Στη συνέχεια καλούμε τη μέθοδο File.Copy για να αντιγράψουμε το αρχείο Example.txt στο αρχείο ExampleNew.txt.

Όταν οριστεί ο παραπάνω κώδικας και το έργο εκτελείται χρησιμοποιώντας το Visual Studio, το αρχείο Example.txt θα αντιγραφεί στο ExampleNew.txt.

Αρχείο.Διαγραφή

Η μέθοδος χρησιμοποιείται για τη διαγραφή ενός υπάρχοντος αρχείου. Ας δούμε ένα παράδειγμα. Εισαγάγετε τον παρακάτω κώδικα στο αρχείο 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();
   }
  }
}

Επεξήγηση κώδικα: -

  1. Αρχικά, δηλώνουμε μια μεταβλητή συμβολοσειράς που ονομάζεται path. Αυτή θα είναι η θέση του αρχείου μας Example.txt. Αυτό είναι το αρχείο που θα διαγραφεί.
  2. Στη συνέχεια, καλούμε τη μέθοδο File.Delete για να διαγράψουμε το αρχείο.

Όταν οριστεί ο παραπάνω κώδικας και το έργο εκτελείται χρησιμοποιώντας το Visual Studio, το αρχείο Example.txt θα διαγραφεί από τη μονάδα δίσκου D.

Σύνοψη

  • Το C# έχει έναν αριθμό λειτουργιών αρχείων που μπορούν να εκτελεστούν σε αρχεία. Οι περισσότερες από αυτές τις λειτουργίες αποτελούν μέρος της κλάσης File.
  • Εάν θέλετε να διαβάσετε δεδομένα από ένα αρχείο, μπορείτε να χρησιμοποιήσετε τις μεθόδους File.ReadAlltext ή File.ReadAllLines.
Μέθοδος αρχείου Descriptιόν
Το αρχείο υπάρχει Η μέθοδος File exists χρησιμοποιείται για να ελέγξει εάν υπάρχει ένα συγκεκριμένο αρχείο.
Αρχείο.ReadAlllines Η μέθοδος χρησιμοποιείται για την ανάγνωση όλων των γραμμών μία προς μία σε ένα αρχείο.
Αρχείο.ReadAllText Αυτή η μέθοδος χρησιμοποιείται για την ταυτόχρονη ανάγνωση όλων των γραμμών σε ένα αρχείο.
Αρχείο.Αντιγραφή Η μέθοδος χρησιμοποιείται για τη δημιουργία αντιγράφου ενός υπάρχοντος αρχείου.
Αρχείο.Διαγραφή Η μέθοδος χρησιμοποιείται για τη διαγραφή ενός υπάρχοντος αρχείου.