Esercizio - Creare file e directory

Completato

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

  1. Nel file Program.cs rimuovere il ciclo foreach che esegue l'iterazione e scrive ogni nome file restituito dalla funzione FindFiles nell'output di Console. Questa modifica comporta l'inutilizzo della variabile salesFiles. Tuttavia, la si lascerà qui per il momento perché verrà usata di nuovo in una lezione futura.

  2. Nel file Program.cs creare una variabile denominata salesTotalDir, 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);
    
  3. 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

  1. 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);
    
  2. Premere CTRL+S / CMD+S per salvare il file.

  3. Eseguire il programma eseguendo il codice seguente dal prompt dei comandi del terminale:

    dotnet run
    
  4. Selezionare l'icona Aggiorna nella finestra di esplorazione Files.

    Screenshot dell'icona Aggiorna in Esplora file dell'editor Cloud Shell.

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;
}