Работа с файлове в C#: I/O Operaции [Примери]
⚡ Умно обобщение
Файловите операции в C# ви позволяват да четете, пишете, копирате и изтривате файлове, използвайки пространството от имена System.IO. Тук ще научите да използвате File.Exists, File.ReadAllLines, File.ReadAllText, File.Copy и File.Delete с ясни примери за код.

C# има широк набор от файлови операции. Тези операции включват отваряне на файл, четене или запис във файл. Може да има случаи, в които искате да работите директно с файлове, като в този случай бихте използвали файловите операции, налични в C#. Някои от основните файлови операции са споменати по-долу.
- Четене – Тази операция е основната операция за четене, при която данните се четат от файл.
- Записване – Тази операция е основната операция за запис, при която данните се записват във файл. По подразбиране цялото съществуващо съдържание се премахва от файла и се записва ново съдържание.
- Добавяне – Тази операция също включва запис на информация във файл. Единствената разлика е, че съществуващите данни във файл не се презаписват. Новите данни за запис се добавят в края на файла.
Основни I/O команди
C# и .Net могат да работят с файлове с помощта на няколко File I/O команди. Нека да разгледаме някои от тези команди. За нашия пример ще приемем, че имаме файл в D устройството, наречен Example.txt.
Файлът ще бъде обикновен текстов файл и ще има 2 реда, както е показано по-долу
- Guru99 – .Net
- Guru99 -Дод#
За нашия пример ще създадем просто конзолно приложение и ще работим с нашите команди за вход/изход на файлове. Конзолното приложение е основното, създадено в по-ранния урок. В конзолното приложение целият код се записва във файла program.cs.
File.Exists
Методът File exists се използва за проверка дали определен файл съществува. Така че сега нека видим кода, който може да се използва за проверка дали нашият файл 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(); } } }
Code Обяснение:
- Първо задаваме низова променлива с пътя към нашия файл Example.txt.
- След това използваме метода File.Exists, за да проверим дали файлът съществува или не. Ако файлът съществува, ще бъде върната истинска стойност.
- Ако получим истинска стойност и файлът съществува, тогава пишем съобщението „Файлът съществува“ на конзолата.
Когато горният код е зададен и проектът се изпълнява с помощта на Visual Studio, ще получите изхода по-долу.
Изход: -
От горния резултат можете да видите, че командата File.Exists е изпълнена успешно и правилното съобщение е показано в прозореца на конзолата.
File.ReadAlllines
Методът се използва за четене на всички редове един по един във файл. След това редовете се съхраняват в променлива с низов масив. Нека разгледаме един пример. Въведете кода по-долу във файла 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(); } } }
Code Обяснение:
- Първо, ние декларираме променлива от низов масив. Това ще се използва за съхраняване на резултата, който ще бъде върнат от метода File.ReadAllLines.
- След това използваме метода File.ReadAllLines, за да прочетем всички редове от нашия текстов файл. След това резултатът се предава на променливата lines.
- Тъй като знаем, че нашият файл съдържа само 2 реда, можем да получим достъп до стойността на променливите на масива чрез командата lines[0] и lines[1].
Когато горният код е зададен и проектът се изпълнява с помощта на Visual Studio, ще получите резултата по-долу.
Изход: -
От изхода можете да видите, че командата File.ReadAllLines е върнала и двата реда от нашия файл Example.txt
File.ReadAllText
Този метод се използва за четене на всички редове във файл наведнъж. След това редовете се съхраняват в низова променлива. Нека разгледаме един пример. Въведете кода по-долу във файла 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(); } } }
Code Обяснение:
- Първо, ние декларираме низова променлива, наречена Lines. Това ще се използва за съхраняване на резултата, който ще бъде върнат от метода File.ReadAllText.
- След това използваме метода File.ReadAllText, за да прочетем всички редове от нашия текстов файл. След това резултатът се предава на променливата lines.
- Можем директно да използваме метода Console.Writeline, за да покажем стойността на променливата Lines.
Когато горният код е зададен и проектът се изпълнява с помощта на Visual Studio, ще получите изхода по-долу.
Изход: -
От изхода можете да видите, че командата 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 Обяснение:
- Първо, ние декларираме низова променлива, наречена path. Това ще бъде местоположението на нашия файл Example.txt. Този файл ще бъде изходният файл, използван за операцията по копиране.
- След това декларираме низова променлива, наречена copypath. Това ще бъде местоположението на нов файл, наречен файл ExampleNew.txt. Това ще бъде целевият файл, в който ще бъде записано съдържанието от изходния файл Example.txt.
- След това извикваме метода 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 Обяснение:
- Първо, ние декларираме низова променлива, наречена path. Това ще бъде местоположението на нашия файл Example.txt. Това е файлът, който ще бъде изтрит.
- След това извикваме метода File.Delete, за да изтрием файла.
Когато горният код е зададен и проектът се изпълнява с помощта на Visual Studio, файлът Example.txt ще бъде изтрит от D устройството.
Справочник на методите на C# файлове
Таблицата по-долу обобщава основните C# файлови методи и какво прави всеки един от тях.
| Метод на файла | Descriptйон |
|---|---|
| File.Exists | Методът съществува файл се използва за проверка дали съществува определен файл. |
| File.ReadAlllines | Методът се използва за четене на всички редове един по един във файл. |
| File.ReadAllText | Този метод се използва за четене на всички редове във файл наведнъж. |
| Файл.Копиране | Методът се използва за създаване на копие на съществуващ файл. |
| Файл.Изтриване | Методът се използва за изтриване на съществуващ файл. |








