Travailler avec le système de fichiers en C# : exemples pratiques et conseils

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

Introduction : pourquoi travailler avec le système de fichiers en C#

\n

Toute application sérieuse rencontre tôt ou tard la nécessité de sauvegarder des données. Qu'il s'agisse de fichiers de configuration, de journaux, de documents utilisateur ou de données temporaires — travailler avec le système de fichiers est une compétence fondamentale pour un développeur C#. Dans cet article, nous allons voir à travers des exemples pratiques comment créer, lire, écrire et gérer des fichiers et dossiers avec .NET. Vous apprendrez non seulement les opérations de base, mais aussi les meilleures pratiques de gestion des exceptions et de travail avec les flux.

\n\n

Classes principales pour travailler avec le système de fichiers

\n

Dans .NET, les espaces de noms System.IO et System.IO.Enumeration sont utilisés pour interagir avec le système de fichiers. Les classes clés dont vous aurez besoin :

\n
    \n
  • File — méthodes statiques pour créer, copier, supprimer et déplacer des fichiers.
  • \n
  • FileInfo — classe d'instance pour travailler avec un fichier spécifique (prend en charge les mêmes opérations mais nécessite la création d'un objet).
  • \n
  • Directory — méthodes statiques pour travailler avec les répertoires.
  • \n
  • DirectoryInfo — classe d'instance pour travailler avec les répertoires.
  • \n
  • Path — classe utilitaire pour travailler avec les chemins (combinaison, obtention de l'extension, du nom, etc.).
  • \n
  • FileStream — flux de bas niveau pour lire/écrire des octets.
  • \n
  • StreamReader / StreamWriter — wrappers de haut niveau pour travailler avec du texte.
  • \n
\n

Le choix entre les méthodes statiques et les classes d'instance dépend du scénario. Si vous devez effectuer une seule opération — utilisez File ou Directory. Si plusieurs opérations sont prévues sur le même objet — créez un FileInfo ou DirectoryInfo.

\n\n

Création, lecture et écriture de fichiers

\n\n

1. Création et écriture d'un fichier texte

\n

La façon la plus simple d'écrire du texte dans un fichier est d'utiliser la méthode File.WriteAllText. Elle crée le fichier (ou écrase un fichier existant) et ferme le flux automatiquement.

\n
using System.IO;\n\nstring path = @"C:\\temp\\example.txt";\nstring content = "Bonjour le monde ! Ceci est un fichier test.";\n\nFile.WriteAllText(path, content);\nConsole.WriteLine("Fichier créé et écrit.");
\n

Si vous devez ajouter des données à la fin du fichier, utilisez File.AppendAllText :

\n
File.AppendAllText(path, "\\nLigne ajoutée.");
\n\n

2. Lecture d'un fichier

\n

Pour lire tout le texte, utilisez File.ReadAllText :

\n
string readContent = File.ReadAllText(path);\nConsole.WriteLine(readContent);
\n

Si le fichier est volumineux, il est préférable de lire ligne par ligne avec File.ReadLines (retourne un IEnumerable<string>) :

\n
foreach (string line in File.ReadLines(path))\n{\n    Console.WriteLine(line);\n}
\n\n

3. Travail avec les fichiers binaires

\n

Pour les données binaires (images, archives), utilisez FileStream ou BinaryReader/BinaryWriter. Exemple d'écriture d'un tableau d'octets :

\n
byte[] data = { 0x48, 0x65, 0x6C, 0x6C, 0x6F }; // "Hello"\nFile.WriteAllBytes(@"C:\\temp\\binary.dat", data);\n\nbyte[] readData = File.ReadAllBytes(@"C:\\temp\\binary.dat");\nConsole.WriteLine(BitConverter.ToString(readData)); // 48-65-6C-6C-6F
\n\n

Travail avec les dossiers et gestion des fichiers

\n\n

1. Création et suppression de dossiers

\n

Vous pouvez créer un dossier avec Directory.CreateDirectory. La méthode crée tous les dossiers manquants dans le chemin :

\n
string dirPath = @"C:\\temp\\MyApp\\Logs";\nDirectory.CreateDirectory(dirPath);\nConsole.WriteLine("Dossier créé.");
\n

Suppression d'un dossier (récursive, avec tout son contenu) :

\n
if (Directory.Exists(dirPath))\n{\n    Directory.Delete(dirPat                

Blogs

Book Recommendations