Esercizio - Creare file e directory
Le classi File
e Directory
in .NET consentono di creare nuovi file e directory a livello di codice.
Fino a questo punto è stata creata un'efficace applicazione della riga di comando in .NET in grado di leggere qualsiasi struttura di cartelle per trovare i file con l'estensione JSON. Ora è necessario leggere questi file per riepilogare i dati in essi contenuti e quindi scrivere i totali in un nuovo file in una nuova directory denominata salesTotals.
In questo esercizio si creano la directory salesTotalDir e il file totals.txt, in cui verranno raccolti i totali delle vendite.
Creare la directory SalesTotals
Nel file
Program.cs
rimuovere il cicloforeach
che esegue l'iterazione e scrive ogni nome file restituito dalla funzioneFindFiles
nell'output di Console. Questa modifica comporta l'inutilizzo della variabilesalesFiles
. Tuttavia, la si lascerà qui per il momento perché verrà usata di nuovo in una lezione futura.Nel file
Program.cs
creare una variabile denominatasalesTotalDir
, che include il percorso alla directory salesTotalDir:var currentDirectory = Directory.GetCurrentDirectory(); var storesDirectory = Path.Combine(currentDirectory, "stores"); var salesTotalDir = Path.Combine(currentDirectory, "salesTotalDir"); var salesFiles = FindFiles(storesDirectory);
Nel file
Program.cs
aggiungere il codice per creare la directory: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);
Scrivere il file totals.txt
Nel file
Program.cs
aggiungere il codice per creare un file vuoto denominato totals.txt all'interno della directory salesTotalDir appena creata. Per il momento usare una stringa vuota per il contenuto del file: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);
Premere CTRL+S / CMD+S per salvare il file.
Eseguire il programma eseguendo il codice seguente dal prompt dei comandi del terminale:
dotnet run
Selezionare l'icona Aggiorna nella finestra di esplorazione Files.
Il programma è quasi completo. L'ultimo passaggio consiste nel leggere i file delle vendite, sommare i totali e scrivere il totale complessivo nel nuovo file totals.txt. Nella prossima unità si vedrà come leggere e analizzare i dati all'interno dei file.
Se si riscontrano problemi
Durante l'esecuzione di questo esercizio, di seguito è riportato il codice completo fino a questo punto:
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;
}