Übung: Erstellen von Dateien und Verzeichnissen

Abgeschlossen

Die Klassen File und Directory in .NET ermöglichen es Ihnen, programmgesteuert neue Dateien und Verzeichnisse zu erstellen.

Bisher haben Sie eine stabile Befehlszeilenanwendung in .NET erstellt, die eine beliebige Ordnerstruktur lesen kann, um nach Dateien mit JSON-Erweiterung zu suchen. Sie müssen jetzt diese Dateien lesen, um die darin befindlichen Daten zusammenfassen und dann die Gesamtwerte in eine neue Datei in einem neuen Verzeichnis namens salesTotals schreiben.

In dieser Übung erstellen Sie das Verzeichnis salesTotalDir und die Datei totals.txt, in der die Gesamtumsätze letztendlich sortiert werden sollen.

Erstellen des Verzeichnisses „salesTotals“

  1. Entfernen Sie in der Program.cs-Datei die foreach-Schleife, die jeden von der FindFiles-Funktion zurückgegebenen Dateinamen iteriert und in die Konsolenausgabe schreibt. Diese Änderung führt dazu, dass die Variable salesFiles unbenutzt bleibt. Wir belassen es jedoch vorerst hier drin, weil wir es in einer späteren Lektion wieder verwenden.

  2. Erstellen Sie in der Datei Program.cs eine Variable namens salesTotalDir, die den Pfad zum Verzeichnis salesTotalDir enthält:

    var currentDirectory = Directory.GetCurrentDirectory();
    var storesDirectory = Path.Combine(currentDirectory, "stores");
    
    var salesTotalDir = Path.Combine(currentDirectory, "salesTotalDir");
    
    var salesFiles = FindFiles(storesDirectory);
    
  3. Fügen Sie in der Datei Program.cs Code hinzu, um das Verzeichnis zu erstellen:

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

Schreiben der Datei „totals.txt“

  1. Fügen Sie in der Datei Program.cs Code hinzu, um eine leere Datei namens totals.txt innerhalb des neu erstellten Verzeichnisses salesTotalDir zu erstellen. Verwenden Sie vorerst eine leere Zeichenfolge für den Inhalt der Datei:

    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. Drücken Sie STRG+S / Befehlstaste+S, um die Datei zu speichern.

  3. Führen Sie das Programm aus, indem Sie folgenden Code über die Eingabeaufforderung des Terminals ausführen:

    dotnet run
    
  4. Klicken Sie im Datei-Explorer auf Aktualisieren.

    Screenshot: Symbol „Aktualisieren“ im Datei-Explorer des Cloud Shell-Editors

Sie haben es fast geschafft. Der letzte Schritt besteht darin, die Umsatzdateien zu lesen, die Gesamtsumme zu berechnen und diese Gesamtsumme in die neue Datei totals.txt zu schreiben. Als Nächstes erfahren Sie, wie Sie Daten in Dateien lesen und analysieren.

Wissen Sie nicht weiter?

Wenn während dieser Übung Probleme auftreten, finden Sie hier den vollständigen Code bis zu dieser Stelle:

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