Filhåndtering i C#: I/O Operationer [Eksempler]
C# har en bred vifte af filoperationer. Disse handlinger omfatter at åbne en fil, læse eller skrive til en fil. Der kan være tilfælde, hvor du ønsker at arbejde med filer direkte, i hvilket tilfælde du ville bruge de filhandlinger, der er tilgængelige i C#. Nogle af de grundlæggende filhandlinger er nævnt nedenfor.
- Læsning - Denne operation er den grundlæggende læseoperation, hvor data læses fra en fil.
- Skrivning - Denne operation er den grundlæggende skriveoperation, hvor data skrives til en fil. Som standard fjernes alt eksisterende indhold fra filen, og nyt indhold skrives.
- Tilføjelse – Denne handling involverer også at skrive information til en fil. Den eneste forskel er, at de eksisterende data i en fil ikke overskrives. De nye data, der skal skrives, tilføjes i slutningen af filen.
Grundlæggende I/O-kommandoer
C# og .Net kan arbejde med filer ved hjælp af flere File I/O kommandoer. Lad os se på nogle af disse kommandoer. For vores eksempel vil vi antage, at vi har en fil i D-drevet kaldet Eksempel.txt.
Filen vil være en simpel tekstfil og have 2 linjer som vist nedenfor
- Guru99 – .Net
- Guru99 -C#
For vores eksempel vil vi oprette en simpel konsolapplikation og arbejde med vores File I/O-kommandoer. Konsolapplikationen er den grundlæggende, som blev oprettet i den tidligere tutorial. I konsolapplikationen skrives al kode til filen program.cs.
Fil.Eksisterer
Metoden File exists bruges til at kontrollere, om en bestemt fil eksisterer. Så lad os nu se koden, som kan bruges til at kontrollere, om vores Eksempel.txt-fil eksisterer eller ej. Indtast nedenstående kode i program.cs filen.
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(); } } }
Kodeforklaring:-
- Først indstiller vi en strengvariabel med stien til vores Eksempel.txt-fil.
- Dernæst bruger vi metoden File.Exists til at kontrollere, om filen eksisterer eller ej. Hvis filen eksisterer, returneres en sand værdi.
- Hvis vi får en sand værdi, og filen eksisterer, skriver vi beskeden "File Exists" til konsollen.
Når ovenstående kode er indstillet, og projektet udføres ved hjælp af Visual Studio, får du nedenstående output.
Produktion:-
Fra ovenstående output kan du se, at kommandoen File.Exists blev udført med succes, og den korrekte meddelelse blev vist i konsolvinduet.
File.ReadAlllines
Metoden bruges til at læse alle linjerne én efter én i en fil. Linjerne gemmes derefter i en strengmatrixvariabel. Lad os se på et eksempel. Indtast nedenstående kode i program.cs filen.
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(); } } }
Kodeforklaring:-
- Først erklærer vi en strengmatrixvariabel. Dette vil blive brugt til at gemme resultatet, som vil blive returneret af metoden File.ReadAllLines.
- Dernæst bruger vi metoden File.ReadAllLines til at læse alle linjerne fra vores tekstfil. Resultatet overføres derefter til linjevariablen.
- Da vi ved, at vores fil kun indeholder 2 linjer, kan vi få adgang til værdien af array-variablerne via kommandoerne lines[0] og lines[1].
Når ovenstående kode er indstillet, og projektet køres vha Visual Studio, får du nedenstående output.
Produktion:-
Fra outputtet kan du se, at kommandoen File.ReadAllLines returnerede begge linjer fra vores fil Eksempel.txt
File.ReadAllText
Denne metode bruges til at læse alle linjerne i en fil på én gang. Linjerne gemmes derefter i en strengvariabel. Lad os se på et eksempel. Indtast nedenstående kode i program.cs filen.
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(); } } }
Kodeforklaring:-
- Først erklærer vi en strengvariabel kaldet Lines. Dette vil blive brugt til at gemme resultatet, som vil blive returneret af metoden File.ReadAllText.
- Dernæst bruger vi File.ReadAllText-metoden til at læse alle linjerne fra vores tekstfil. Resultatet overføres derefter til linjevariablen.
- Vi kan direkte bruge Console.Writeline-metoden til at vise værdien af Lines-variablen.
Når ovenstående kode er indstillet, og projektet køres ved hjælp af Visual Studio, får du nedenstående output.
Produktion:-
Fra outputtet kan du se, at kommandoen File.ReadAlltext returnerede begge linjer fra vores fil Eksempel.txt
Fil.Kopi
Metoden bruges til at lave en kopi af en eksisterende fil. Lad os se på et eksempel. Indtast nedenstående kode i program.cs filen.
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(); } } }
Kodeforklaring:-
- Først erklærer vi en strengvariabel kaldet sti. Dette vil være placeringen af vores Eksempel.txt-fil. Denne fil vil være kildefilen, der bruges til kopieringen.
- Dernæst erklærer vi en strengvariabel kaldet copypath. Dette vil være placeringen af en ny fil kaldet EksempelNy.txt-fil. Dette vil være destinationsfilen, hvori indholdet vil blive skrevet fra kildefilen Eksempel.txt.
- Vi kalder derefter File.Copy-metoden for at kopiere filen Eksempel.txt til filen EksempelNy.txt.
Når ovenstående kode er indstillet, og projektet køres ved hjælp af Visual Studio, vil filen Eksempel.txt blive kopieret til EksempelNy.txt.
Fil.Slet
Metoden bruges til at slette en eksisterende fil. Lad os se på et eksempel. Indtast nedenstående kode i program.cs filen.
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(); } } }
Kodeforklaring:-
- Først erklærer vi en strengvariabel kaldet sti. Dette vil være placeringen af vores Eksempel.txt-fil. Dette er filen, som vil blive slettet.
- Dernæst kalder vi File.Delete-metoden for at slette filen.
Når ovenstående kode er indstillet, og projektet køres ved hjælp af Visual Studio, vil filen Eksempel.txt blive slettet fra D-drevet.
Resumé
- C# har en række fil-operationer, som kan udføres på filer. De fleste af disse operationer er en del af klassen File.
- Hvis du vil læse data fra en fil, kan du bruge metoderne File.ReadAlltext eller File.ReadAllLines.
Filmetode | Produktbeskrivelse |
---|---|
Fil.Eksisterer | Filen eksisterer metoden bruges til at kontrollere, om en bestemt fil eksisterer. |
File.ReadAlllines | Metoden bruges til at læse alle linjerne én efter én i en fil. |
File.ReadAllText | Denne metode bruges til at læse alle linjerne i en fil på én gang. |
Fil.Kopi | Metoden bruges til at lave en kopi af en eksisterende fil. |
Fil.Slet | Metoden bruges til at slette en eksisterende fil. |