Работа с файлове в C#: I/O Operaции [Примери]

⚡ Умно обобщение

Файловите операции в C# ви позволяват да четете, пишете, копирате и изтривате файлове, използвайки пространството от имена System.IO. Тук ще научите да използвате File.Exists, File.ReadAllLines, File.ReadAllText, File.Copy и File.Delete с ясни примери за код.

  • 📂 Какво е: Файловите операции в C# четат, пишат, копират и изтриват файлове чрез пространството от имена System.IO.
  • Файл.Съществува: File.Exists(path) проверява дали даден файл е наличен, преди да го прочетете или изтриете.
  • 📖 четене: File.ReadAllLines връща масив от низове, докато File.ReadAllText връща целия файл като един низ.
  • 📋 Копиране и изтриване: File.Copy дублира файл в нов път, а File.Delete го премахва.
  • 🤖 Помощ с изкуствен интелект: Инструменти с изкуствен интелект като GitHub Copilot генерират C# код за обработка на файлове мигновено.

C# файл Operaции

C# има широк набор от файлови операции. Тези операции включват отваряне на файл, четене или запис във файл. Може да има случаи, в които искате да работите директно с файлове, като в този случай бихте използвали файловите операции, налични в C#. Някои от основните файлови операции са споменати по-долу.

  1. Четене – Тази операция е основната операция за четене, при която данните се четат от файл.
  2. Записване – Тази операция е основната операция за запис, при която данните се записват във файл. По подразбиране цялото съществуващо съдържание се премахва от файла и се записва ново съдържание.
  3. Добавяне – Тази операция също включва запис на информация във файл. Единствената разлика е, че съществуващите данни във файл не се презаписват. Новите данни за запис се добавят в края на файла.

Основни I/O команди

C# и .Net могат да работят с файлове с помощта на няколко File I/O команди. Нека да разгледаме някои от тези команди. За нашия пример ще приемем, че имаме файл в D устройството, наречен Example.txt.
Файлът ще бъде обикновен текстов файл и ще има 2 реда, както е показано по-долу

  • Guru99 – .Net
  • Guru99 -Дод#

За нашия пример ще създадем просто конзолно приложение и ще работим с нашите команди за вход/изход на файлове. Конзолното приложение е основното, създадено в по-ранния урок. В конзолното приложение целият код се записва във файла program.cs.

File.Exists

Методът File exists се използва за проверка дали определен файл съществува. Така че сега нека видим кода, който може да се използва за проверка дали нашият файл Example.txt съществува или не. Въведете кода по-долу във файла program.cs.

File.Exists

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 Обяснение:

  1. Първо задаваме низова променлива с пътя към нашия файл Example.txt.
  2. След това използваме метода File.Exists, за да проверим дали файлът съществува или не. Ако файлът съществува, ще бъде върната истинска стойност.
  3. Ако получим истинска стойност и файлът съществува, тогава пишем съобщението „Файлът съществува“ на конзолата.

Когато горният код е зададен и проектът се изпълнява с помощта на Visual Studio, ще получите изхода по-долу.

Изход: -

File.Exists

От горния резултат можете да видите, че командата File.Exists е изпълнена успешно и правилното съобщение е показано в прозореца на конзолата.

File.ReadAlllines

Методът се използва за четене на всички редове един по един във файл. След това редовете се съхраняват в променлива с низов масив. Нека разгледаме един пример. Въведете кода по-долу във файла 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 Обяснение:

  1. Първо, ние декларираме променлива от низов масив. Това ще се използва за съхраняване на резултата, който ще бъде върнат от метода File.ReadAllLines.
  2. След това използваме метода File.ReadAllLines, за да прочетем всички редове от нашия текстов файл. След това резултатът се предава на променливата lines.
  3. Тъй като знаем, че нашият файл съдържа само 2 реда, можем да получим достъп до стойността на променливите на масива чрез командата lines[0] и lines[1].

Когато горният код е зададен и проектът се изпълнява с помощта на Visual Studio, ще получите резултата по-долу.

Изход: -

File.ReadAlllines

От изхода можете да видите, че командата File.ReadAllLines е върнала и двата реда от нашия файл Example.txt

File.ReadAllText

Този метод се използва за четене на всички редове във файл наведнъж. След това редовете се съхраняват в низова променлива. Нека разгледаме един пример. Въведете кода по-долу във файла 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 Обяснение:

  1. Първо, ние декларираме низова променлива, наречена Lines. Това ще се използва за съхраняване на резултата, който ще бъде върнат от метода File.ReadAllText.
  2. След това използваме метода File.ReadAllText, за да прочетем всички редове от нашия текстов файл. След това резултатът се предава на променливата lines.
  3. Можем директно да използваме метода Console.Writeline, за да покажем стойността на променливата Lines.

Когато горният код е зададен и проектът се изпълнява с помощта на Visual Studio, ще получите изхода по-долу.

Изход: -

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

Code Обяснение:

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

Code Обяснение:

  1. Първо, ние декларираме низова променлива, наречена path. Това ще бъде местоположението на нашия файл Example.txt. Това е файлът, който ще бъде изтрит.
  2. След това извикваме метода File.Delete, за да изтрием файла.

Когато горният код е зададен и проектът се изпълнява с помощта на Visual Studio, файлът Example.txt ще бъде изтрит от D устройството.

Справочник на методите на C# файлове

Таблицата по-долу обобщава основните C# файлови методи и какво прави всеки един от тях.

Метод на файла Descriptйон
File.Exists Методът съществува файл се използва за проверка дали съществува определен файл.
File.ReadAlllines Методът се използва за четене на всички редове един по един във файл.
File.ReadAllText Този метод се използва за четене на всички редове във файл наведнъж.
Файл.Копиране Методът се използва за създаване на копие на съществуващ файл.
Файл.Изтриване Методът се използва за изтриване на съществуващ файл.

Въпроси и Отговори

Файловите операции в C# ви позволяват да четете, пишете, копирате, добавяте и изтривате файлове. Повечето методи принадлежат към класа System.IO.File, като например File.Exists, File.ReadAllText, File.Copy и File.Delete.

Използвайте File.Exists(path), което връща true, когато файлът съществува, и false в противен случай. Проверете го преди да прочетете или изтриете файл, за да избегнете изключения по време на изпълнение.

File.ReadAllLines връща всеки ред като елемент от масив от низове, докато File.ReadAllText връща цялото съдържание на файла като един низ.

Извикайте File.Copy(sourcePath, destinationPath). Това създава нов файл в местоназначението, съдържащ съдържанието на изходния файл.

Извикайте File.Delete(path). Това премахва файла за постоянно, така че първо потвърдете съществуването му с File.Exists, за да избегнете FileNotFoundException.

Асистенти с изкуствен интелект, като например GitHub Copilot, автоматично довършват извикванията на File.ReadAllText, File.Copy и File.Delete и генерират код за обработка на файлове от try-catch кратък коментар, описващ задачата.

Да. Инструментите, задвижвани от изкуствен интелект, генерират методи за четене и запис, предлагат методи StreamReader или File и добавят обработка на изключения, така че кодът ви да е по-безопасен.

Добавете using System.IO; в началото на вашата програма. Именуването System.IO съдържа File, StreamReader и Stream.Writer класове, използвани за обработка на файлове.

Обобщете тази публикация с: