Exercice - Créer des fichiers et des répertoires

Effectué

Les classes File et Directory de .NET vous permettent de créer des fichiers et des répertoires programmatiquement.

Jusqu’à présent, vous avez créé une application en ligne de commande robuste dans .NET qui peut lire n’importe quelle structure de dossiers pour y rechercher les fichiers avec l’extension .json. À présent, vous devez lire ces fichiers pour résumer les données qu’ils contiennent, puis écrire les totaux sur un nouveau fichier dans un nouveau répertoire appelé salesTotals.

Dans cet exercice, vous créez le répertoire salesTotalDir et le fichier totals.txt dans lequel les totaux des ventes sont rassemblés.

Créer le répertoire « SalesTotals »

  1. Dans le fichier Program.cs, supprimez la boucle foreach qui itère et écrit chaque nom de fichier retourné par la fonction FindFiles dans la sortie Console. Cette modification a pour effet de rendre la variable salesFiles inutilisée. Toutefois, nous laissons ce composant ici pour l’instant, car nous l’utiliserons à nouveau dans une prochaine leçon.

  2. Dans le fichier Program.cs, créez une variable appelée salesTotalDir, qui contient le chemin du répertoire salesTotalDir :

    var currentDirectory = Directory.GetCurrentDirectory();
    var storesDirectory = Path.Combine(currentDirectory, "stores");
    
    var salesTotalDir = Path.Combine(currentDirectory, "salesTotalDir");
    
    var salesFiles = FindFiles(storesDirectory);
    
  3. Dans le fichier Program.cs, ajoutez le code pour créer le répertoire :

    var currentDirectory = Directory.GetCurrentDirectory();
    var storesDirectory = Path.Combine(currentDirectory, "stores");
    
    var salesTotalDir = Path.Combine(currentDirectory, "salesTotalDir");
    Directory.CreateDirectory(salesTotalDir);   // Add this line of code
    
    var salesFiles = FindFiles(storesDirectory);   
    

Écrire le fichier totals.txt

  1. Dans le fichier Program.cs, ajoutez le code pour créer un fichier vide appelé totals.txt dans le nouveau répertoire salesTotalDir. Utilisez une chaîne vide comme contenu du fichier pour l’instant :

    var currentDirectory = Directory.GetCurrentDirectory();
    var storesDirectory = Path.Combine(currentDirectory, "stores");
    
    var salesTotalDir = Path.Combine(currentDirectory, "salesTotalDir");
    Directory.CreateDirectory(salesTotalDir);
    
    var salesFiles = FindFiles(storesDirectory);
    
    File.WriteAllText(Path.Combine(salesTotalDir, "totals.txt"), String.Empty);
    
  2. Appuyez sur Ctrl+S / Cmd+S pour enregistrer le fichier.

  3. Exécutez le programme en exécutant le code suivant à l’invite du terminal :

    dotnet run
    
  4. Sélectionnez l’icône Actualiser dans l’Explorateur de fichiers.

    Capture d’écran de l’icône Actualiser dans l’Explorateur de fichiers de l’éditeur Cloud Shell.

Vous avez presque fini. La dernière étape consiste à lire les fichiers de ventes, additionner les totaux et écrire le total général dans le nouveau fichier totals.txt. Ensuite, vous apprendrez à lire et à analyser les données incluses dans les fichiers.

Vous êtes bloqué ?

Si vous êtes bloqué pendant cet exercice, voici le code complet utilisé jusqu’ici :

var currentDirectory = Directory.GetCurrentDirectory();
var storesDirectory = Path.Combine(currentDirectory, "stores");

var salesTotalDir = Path.Combine(currentDirectory, "salesTotalDir");
Directory.CreateDirectory(salesTotalDir);     
var salesFiles = FindFiles(storesDirectory);

File.WriteAllText(Path.Combine(salesTotalDir, "totals.txt"), String.Empty);

IEnumerable<string> FindFiles(string folderName)
{
    List<string> salesFiles = new List<string>();

    var foundFiles = Directory.EnumerateFiles(folderName, "*", SearchOption.AllDirectories);

    foreach (var file in foundFiles)
    {
        var extension = Path.GetExtension(file);
        if (extension == ".json")
        {
            salesFiles.Add(file);
        }
    }

    return salesFiles;
}