Exercice - Créer des fichiers et des répertoires
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 »
Dans le fichier
Program.cs
, supprimez la boucleforeach
qui itère et écrit chaque nom de fichier retourné par la fonctionFindFiles
dans la sortie Console. Cette modification a pour effet de rendre la variablesalesFiles
inutilisée. Toutefois, nous laissons ce composant ici pour l’instant, car nous l’utiliserons à nouveau dans une prochaine leçon.Dans le fichier
Program.cs
, créez une variable appeléesalesTotalDir
, 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);
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
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);
Appuyez sur Ctrl+S / Cmd+S pour enregistrer le fichier.
Exécutez le programme en exécutant le code suivant à l’invite du terminal :
dotnet run
Sélectionnez l’icône Actualiser dans l’Explorateur de fichiers.
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;
}