C-SHARP - 5.6 Exercice
Cet exercice de fin de section consolide la manipulation des fichiers et répertoires en C# vue dans les leçons précédentes. Il mobilise les classes File, Directory, Path ainsi que les notions de boucles et de conditions.
Énoncé
Écrivez un programme qui demande à l'utilisateur le chemin d'un dossier, puis :
- vérifie que le dossier existe (sinon affiche une erreur) ;
- liste tous les fichiers présents dans ce dossier avec leur nom, leur extension et leur taille ;
- crée un sous-dossier nommé « archives » à l'intérieur ;
- copie chaque fichier
.txttrouvé dans ce nouveau sous-dossier.
Pistes de solution
On utilise Directory.Exists pour la vérification, Directory.GetFiles pour lister, Path.GetExtension pour filtrer les extensions, Path.Combine pour construire les chemins de destination et File.Copy pour la copie effective :
using System.IO;
Console.Write("Chemin du dossier : ");
string dossier = Console.ReadLine();
if (!Directory.Exists(dossier))
{
Console.WriteLine("Le dossier n'existe pas.");
return;
}
string archives = Path.Combine(dossier, "archives");
Directory.CreateDirectory(archives);
foreach (string fichier in Directory.GetFiles(dossier))
{
FileInfo info = new FileInfo(fichier);
Console.WriteLine($"{info.Name} ({info.Extension}, {info.Length} o)");
if (Path.GetExtension(fichier) == ".txt")
{
string destination = Path.Combine(archives, info.Name);
File.Copy(fichier, destination, overwrite: true);
}
}
Cet exercice combine quasiment toutes les notions de la section : tests d'existence, lecture d'informations sur les fichiers, création de répertoire, filtrage par extension et copie ciblée. Si vous êtes à l'aise avec ce programme, vous maîtrisez l'essentiel de la manipulation de fichiers en C#. La prochaine section abordera des sujets plus avancés.