Travailler avec le système de fichiers en C# : guide complet

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

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 de toute application. En C# (.NET), il existe à cet effet l'espace de noms puissant System.IO, qui fournit au développeur un ensemble complet d'outils pour créer, lire, écrire, déplacer et supprimer des fichiers et dossiers. Dans cet article, nous allons détailler toutes les opérations de base avec le système de fichiers, en commençant par des exemples simples et en terminant par des techniques avancées de traitement de données.



Les bases du travail avec les fichiers en C#



L'espace de noms System.IO inclut les classes File et FileInfo, qui fournissent des méthodes statiques et d'instance pour gérer les fichiers. Examinons les opérations de base.



Lecture et écriture de fichiers texte



La façon la plus simple de travailler avec des fichiers texte est d'utiliser les méthodes statiques de la classe File :



using System.IO;

// Écriture de texte dans un fichier (crée un nouveau fichier ou écrase un fichier existant)string content = "Bonjour le monde ! Ceci est un exemple de travail avec les fichiers en C#.";File.WriteAllText(@"C:\\temp\\example.txt", content);

// Lecture de tout le texte d'un fichierstring readContent = File.ReadAllText(@"C:\\temp\\example.txt");Console.WriteLine(readContent);

// Ajout à la fin du fichierFile.AppendAllText(@"C:\\temp\\example.txt", "Nouvelle ligne ajoutée.");


Travail avec les fichiers binaires



Pour travailler avec des données binaires, utilisez File.ReadAllBytes et File.WriteAllBytes :



byte[] binaryData = new byte[] { 0x48, 0x65, 0x6C, 0x6C, 0x6F };File.WriteAllBytes(@"C:\\temp\\binary.bin", binaryData);

byte[] readBinary = File.ReadAllBytes(@"C:\\temp\\binary.bin");Console.WriteLine(string.Join(", ", readBinary)); // Sortie : 72, 101, 108, 108, 111


Vérification de l'existence d'un fichier et sa suppression



Avant d'effectuer des opérations sur les fichiers, il est toujours utile de vérifier leur existence :



string filePath = @"C:\\temp\\example.txt";

if (File.Exists(filePath)){ Console.WriteLine("Le fichier existe. Suppression en cours..."); File.Delete(filePath); Console.WriteLine("Fichier supprimé.");}else{ Console.WriteLine("Fichier non trouvé.");}


Travail avec les répertoires en C#



Pour gérer les dossiers, on utilise les classes Directory et DirectoryInfo. Elles permettent de créer, déplacer, renommer et supprimer des répertoires, ainsi que d'obtenir des informations à leur sujet.



Création et suppression de dossiers



string dirPath = @"C:\\temp\\MyNewFolder";

// Création d'un dossier (s'il existe déjà, aucune exception n'est levée)Directory.CreateDirectory(dirPath);

// Vérification de l'existenceif (Directory.Exists(dirPath)){ Console.WriteLine("Dossier créé avec succès.");}

// Suppression d'un dossier (deuxième paramètre - suppression récursive ou non)Directory.Delete(dirPath, recursive: true);Console.WriteLine("Dossier supprimé.");


Obtention de la liste des fichiers et sous-dossiers



Les méthodes GetFiles et GetDirectories permettent d'obtenir le contenu d'un répertoire :



string targetDir = @"C:\\temp";

// Obtention de tous les fichiers du répertoirestring[] files = Directory.GetFiles(targetDir);Console.WriteLine("Fichiers dans le répertoire :");foreach (string file in files){ Console.WriteLine($" {Path.GetFileName(file)}");}

// Obtention de tous les sous-dossiersstring[] subDirs = Directory.GetDirectories(targetDir);Console.WriteLine("Sous-dossiers :");foreach (string dir in subDirs){ Console.WriteLine($" {Path.GetFileName(dir)}");}

// Recherche par motif (par exemple, tous les fichiers texte)string[] txtFiles = Directory.GetFiles(targetDir, "*.txt");Console.WriteLine($"Trouvé {txtFiles.Length} fichiers texte.");


Travail avec DirectoryInfo



La classe DirectoryInfo

Blogs

Book Recommendations