Travailler avec le système de fichiers en C# : guide complet pour les développeurs

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course
Here is the translated HTML content in French: ```html

Travailler avec le système de fichiers en C# : des bases aux techniques avancées

Travailler avec le système de fichiers est l'une des tâches clés lors du développement d'applications en C#. Qu'il s'agisse de sauvegarder des données utilisateur, de lire des fichiers de configuration ou de traiter des journaux — la capacité à interagir efficacement avec les fichiers et les répertoires est essentielle pour tout développeur .NET. Dans cet article, nous allons passer en revue les classes principales de l'espace de noms System.IO, apprendre à créer, lire et modifier des fichiers, et examiner les meilleures pratiques de gestion des erreurs.



1. Classes principales pour travailler avec le système de fichiers

Dans .NET, plusieurs classes clés sont prévues pour travailler avec les fichiers et les répertoires. Examinons-les en détail.



Classe File et FileInfo

File est une classe statique qui fournit des méthodes pour créer, copier, supprimer et déplacer des fichiers. FileInfo est une classe d'instance qui permet de travailler avec un fichier spécifique.

using System.IO;

// Utilisation de la classe statique Filestring path = @"C:\\Temp\\test.txt";if (File.Exists(path)){ string content = File.ReadAllText(path); Console.WriteLine(content);}

// Utilisation de FileInfoFileInfo fileInfo = new FileInfo(path);if (fileInfo.Exists){ Console.WriteLine($"Taille du fichier : {fileInfo.Length} octets"); Console.WriteLine($"Date de création : {fileInfo.CreationTime}");}


Classe Directory et DirectoryInfo

De même, Directory est une classe statique pour les opérations sur les répertoires, et DirectoryInfo pour travailler avec un dossier spécifique.

string dirPath = @"C:\\Temp\\MyFolder";

// Création d'un répertoireDirectory.CreateDirectory(dirPath);

// Obtention d'informations sur le répertoireDirectoryInfo dirInfo = new DirectoryInfo(dirPath);if (dirInfo.Exists){ Console.WriteLine($"Sous-répertoires : {dirInfo.GetDirectories().Length}"); Console.WriteLine($"Fichiers : {dirInfo.GetFiles().Length}");}


Classe Path

Path est une classe utilitaire pour travailler avec les chemins. Elle aide à combiner des chemins, extraire des extensions et des noms de fichiers.

string fullPath = @"C:\\Temp\\myfile.txt";string fileName = Path.GetFileName(fullPath);       // myfile.txtstring extension = Path.GetExtension(fullPath);     // .txtstring directory = Path.GetDirectoryName(fullPath); // C:\\Tempstring combined = Path.Combine(@"C:\\Temp", "newfile.txt"); // C:\\Tempewfile.txt


2. Lecture et écriture de fichiers

En C#, il existe plusieurs façons de lire et d'écrire des fichiers. Le choix dépend de la taille des données et des performances requises.



Lecture de fichiers texte

Pour les petits fichiers, il est pratique d'utiliser des méthodes en une ligne :

// Lecture de tout le fichier en une lignestring text = File.ReadAllText("data.txt");

// Lecture de toutes les lignes dans un tableaustring[] lines = File.ReadAllLines("data.txt");

// Lecture avec StreamReader (pour les gros fichiers)using (StreamReader reader = new StreamReader("largefile.txt")){ string line; while ((line = reader.ReadLine()) != null) { Console.WriteLine(line); }}


Écriture dans des fichiers

// Écriture d'une chaîneFile.WriteAllText("output.txt", "Hello, World!");

// Écriture d'un tableau de chaînesstring[] lines = { "Première ligne", "Deuxième ligne" };File.WriteAllLines("output.txt", lines);

// Ajout à la fin d'un fichierFile.AppendAllText("log.txt", $"{DateTime.Now}: Nouvelle entrée");

// Écriture avec StreamWriterusing (StreamWriter writer = new StreamWriter("data.txt", append: true)){ writer.WriteLine("Nouvelle ligne");}


Travail avec des fichiers binaires

Pour les données binaires, utilisez FileStream et BinaryReader/BinaryWriter :

// Écriture de données binairesusing (BinaryWriter writer = new BinaryWriter(File.Open("data.bin"
```                

Blogs

Book Recommendations