Bestandsverwerking in C#: I/O Operaties [Voorbeelden]

โšก Slimme samenvatting

Met C#-bestandsbewerkingen kunt u bestanden lezen, schrijven, kopiรซren en verwijderen met behulp van de System.IO-naamruimte. Hier leert u hoe u File.Exists, File.ReadAllLines, File.ReadAllText, File.Copy en File.Delete gebruikt aan de hand van duidelijke codevoorbeelden.

  • ๐Ÿ“‚ Wat het is: Met C# kunt u bestanden lezen, schrijven, kopiรซren en verwijderen via de System.IO-naamruimte.
  • โœ… Bestand.Bestaat: File.Exists(path) controleert of een bestand aanwezig is voordat je het leest of verwijdert.
  • ???? Lezing: File.ReadAllLines retourneert een array van strings, terwijl File.ReadAllText het hele bestand als รฉรฉn string retourneert.
  • ๐Ÿ“‹ Kopiรซren en verwijderen: Met File.Copy wordt een bestand naar een nieuw pad gekopieerd en met File.Delete wordt het verwijderd.
  • ๐Ÿค– AI-ondersteuning: AI-tools zoals GitHub Copilot genereren direct C#-code voor bestandsverwerking.

C#-bestand Operaties

C# heeft een breed scala aan bestandsbewerkingen. Deze bewerkingen omvatten het openen van een bestand, het lezen van of schrijven naar een bestand. Er kunnen gevallen zijn waarin u rechtstreeks met bestanden wilt werken, in welk geval u de bestandsbewerkingen zou gebruiken die beschikbaar zijn in C#. Enkele van de basisbestandsbewerkingen worden hieronder genoemd.

  1. Lezen โ€“ Deze bewerking is de basisleesbewerking waarbij gegevens uit een bestand worden gelezen.
  2. Schrijven โ€“ Deze bewerking is de basisschrijfbewerking waarbij gegevens naar een bestand worden geschreven. Standaard worden alle bestaande inhoud uit het bestand verwijderd en wordt nieuwe inhoud geschreven.
  3. Appending โ€“ Deze bewerking omvat ook het schrijven van informatie naar een bestand. Het enige verschil is dat de bestaande gegevens in een bestand niet worden overschreven. De nieuwe gegevens die moeten worden geschreven, worden aan het einde van het bestand toegevoegd.

Basis I/O-opdrachten

C# en .Net kunnen met bestanden werken met behulp van verschillende File I/O-opdrachten. Laten we eens een paar van deze commando's bekijken. Voor ons voorbeeld gaan we ervan uit dat we een bestand op de D-schijf hebben met de naam Voorbeeld.txt.
Het bestand zal een eenvoudig tekstbestand zijn en twee regels bevatten, zoals hieronder weergegeven

  • Guru99 โ€“ .Net
  • Guru99 -C#

Voor ons voorbeeld zullen we een eenvoudige Console-applicatie maken en werken met onze File I/O-opdrachten. De consoleapplicatie is de basisapplicatie die in de eerdere tutorial is gemaakt. In de consoletoepassing wordt alle code naar het bestand program.cs geschreven.

Bestand bestaat

De methode Bestand bestaat wordt gebruikt om te controleren of een bepaald bestand bestaat. Laten we nu eens kijken naar de code die kan worden gebruikt om te controleren of ons voorbeeld.txt-bestand bestaat of niet. Voer de onderstaande code in het program.cs-bestand in.

Bestand bestaat

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 Uitleg:-

  1. Eerst stellen we een stringvariabele in met het pad naar ons voorbeeld.txt-bestand.
  2. Vervolgens gebruiken we de File.Exists-methode om te controleren of het bestand bestaat of niet. Als het bestand bestaat, wordt een echte waarde geretourneerd.
  3. Als we een echte waarde krijgen en het bestand bestaat, schrijven we het bericht "Bestand bestaat" naar de console.

Wanneer de bovenstaande code is ingesteld en het project wordt uitgevoerd met Visual Studio, krijgt u de onderstaande uitvoer.

Uitgang: -

Bestand bestaat

Uit de bovenstaande uitvoer kunt u zien dat de opdracht File.Exists succesvol is uitgevoerd en dat het juiste bericht in het consolevenster is weergegeven.

Bestand.ReadAlllines

De methode wordt gebruikt om alle regels รฉรฉn voor รฉรฉn in een bestand te lezen. De regels worden vervolgens opgeslagen in een stringarrayvariabele. Laten we eens kijken naar een voorbeeld. Voer de onderstaande code in het program.cs-bestand in.

Bestand.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 Uitleg:-

  1. Eerst declareren we een stringarrayvariabele. Dit wordt gebruikt om het resultaat op te slaan dat wordt geretourneerd door de File.ReadAllLines-methode.
  2. Vervolgens gebruiken we de File.ReadAllLines-methode om alle regels uit ons tekstbestand te lezen. Het resultaat wordt vervolgens doorgegeven aan de variabele lines.
  3. Omdat we weten dat ons bestand slechts twee regels bevat, hebben we toegang tot de waarde van de arrayvariabelen via de commando's lines[2] en lines[0].

Wanneer de bovenstaande code is ingesteld en het project wordt uitgevoerd met Visual Studio, krijgt u de onderstaande uitvoer.

Uitgang: -

Bestand.ReadAlllines

Uit de uitvoer kunt u zien dat de opdracht File.ReadAllLines beide regels uit ons bestand Preview.txt retourneert

Bestand.ReadAllText

Deze methode wordt gebruikt om alle regels in een bestand in รฉรฉn keer te lezen. De regels worden vervolgens opgeslagen in een stringvariabele. Laten we eens kijken naar een voorbeeld. Voer de onderstaande code in het program.cs-bestand in.

Bestand.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 Uitleg:-

  1. Eerst declareren we een stringvariabele genaamd Lines. Dit wordt gebruikt om het resultaat op te slaan dat wordt geretourneerd door de File.ReadAllText-methode.
  2. Vervolgens gebruiken we de File.ReadAllText-methode om alle regels uit ons tekstbestand te lezen. Het resultaat wordt vervolgens doorgegeven aan de variabele lines.
  3. We kunnen de Console.Writeline-methode rechtstreeks gebruiken om de waarde van de Lines-variabele weer te geven.

Wanneer de bovenstaande code is ingesteld en het project wordt uitgevoerd met Visual Studio, krijgt u de onderstaande uitvoer.

Uitgang: -

Bestand.ReadAllText

Uit de uitvoer kunt u zien dat de opdracht File.ReadAlltext beide regels uit ons bestand Voorbeeld.txt retourneert

Bestand. Kopiรซren

De methode wordt gebruikt om een โ€‹โ€‹kopie te maken van een bestaand bestand. Laten we eens kijken naar een voorbeeld. Voer de onderstaande code in het program.cs-bestand in.

Bestand. Kopiรซren

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 Uitleg:-

  1. Eerst declareren we een stringvariabele genaamd path. Dit wordt de locatie van ons Example.txt-bestand. Dit bestand wordt het bronbestand dat wordt gebruikt voor de kopieerbewerking.
  2. Vervolgens declareren we een stringvariabele met de naam copypath. Dit is de locatie van een nieuw bestand met de naam VoorbeeldNew.txt-bestand. Dit zal het doelbestand zijn waarin de inhoud zal worden geschreven vanuit het bronbestand Voorbeeld.txt.
  3. Vervolgens roepen we de File.Copy-methode aan om het bestand Exemple.txt naar het bestand ExempleNew.txt te kopiรซren.

Wanneer de bovenstaande code is ingesteld en het project wordt uitgevoerd met Visual Studio, wordt het bestand Example.txt gekopieerd naar ExampleNew.txt.

Bestand.Verwijderen

De methode wordt gebruikt om een โ€‹โ€‹bestaand bestand te verwijderen. Laten we eens kijken naar een voorbeeld. Voer de onderstaande code in het program.cs-bestand in.

Bestand.Verwijderen

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 Uitleg:-

  1. Eerst declareren we een stringvariabele genaamd path. Dit zal de locatie zijn van ons voorbeeld.txt-bestand. Dit is het bestand dat wordt verwijderd.
  2. Vervolgens roepen we de File.Delete-methode aan om het bestand te verwijderen.

Wanneer de bovenstaande code is ingesteld en het project wordt uitgevoerd met Visual Studio, wordt het bestand Example.txt van schijf D verwijderd.

Referentie voor C#-bestandsmethoden

De onderstaande tabel geeft een overzicht van de belangrijkste C#-bestandsmethoden en wat elke methode doet.

Bestandsmethode Beschrijving
Bestand bestaat De methode Bestand bestaat wordt gebruikt om te controleren of een bepaald bestand bestaat.
Bestand.ReadAlllines De methode wordt gebruikt om alle regels รฉรฉn voor รฉรฉn in een bestand te lezen.
Bestand.ReadAllText Deze methode wordt gebruikt om alle regels in een bestand in รฉรฉn keer te lezen.
Bestand. Kopiรซren De methode wordt gebruikt om een โ€‹โ€‹kopie te maken van een bestaand bestand.
Bestand.Verwijderen De methode wordt gebruikt om een โ€‹โ€‹bestaand bestand te verwijderen.

Veelgestelde vragen

Met C#-bestandsbewerkingen kunt u bestanden lezen, schrijven, kopiรซren, toevoegen en verwijderen. De meeste methoden behoren tot de klasse System.IO.File, zoals File.Exists, File.ReadAllText, File.Copy en File.Delete.

Gebruik File.Exists(path), die true retourneert als het bestand bestaat en false anders. Controleer dit voordat u een bestand leest of verwijdert om runtimefouten te voorkomen.

File.ReadAllLines retourneert elke regel als een element van een tekenreeksarray, terwijl File.ReadAllText de volledige inhoud van het bestand als รฉรฉn enkele tekenreeks retourneert.

Roep File.Copy(sourcePath, destinationPath) aan. Hiermee wordt een nieuw bestand op de bestemming aangemaakt met de inhoud van het bronbestand.

Roep File.Delete(path) aan. Hiermee wordt het bestand permanent verwijderd, dus controleer eerst met File.Exists of het bestand bestaat om een โ€‹โ€‹FileNotFoundException te voorkomen.

AI-assistenten zoals GitHub Copilot vullen automatisch de aanroepen File.ReadAllText, File.Copy en File.Delete aan en genereren try-catch-code voor bestandsverwerking op basis van een korte opmerking die de taak beschrijft.

Ja. AI-gestuurde tools genereren lees- en schrijfmethoden, suggereren StreamReader- of File-methoden en voegen foutafhandeling toe, waardoor uw code veiliger wordt.

Voeg bovenaan uw programma `using System.IO;` toe. De `System.IO`-naamruimte bevat de klassen `File`, `StreamReader` en `Stream`.Writer klassen die worden gebruikt voor bestandsverwerking.

Vat dit bericht samen met: