Övning – Skapa filer och kataloger

Slutförd

Med klasserna File och Directory i .NET kan du skapa nya filer och kataloger programmatiskt.

Hittills har du skapat ett robust kommandoradsprogram i .NET som kan läsa godtycklig mappstruktur för att hitta filer med filnamnstillägget .json. Nu måste du läsa filerna för att sammanfatta data i dem och sedan skriva summorna till en ny fil i en ny katalog med namnet salesTotals.

I den här övningen skapar du katalogen salesTotalDir och filen totals.txt där försäljningssummorna är sorterade.

Skapa katalogen SalesTotals

  1. Program.cs I filen tar du bort loopen foreach som itererar och skriver varje filnamn som returneras från FindFiles funktionen till konsolutdata. Den här ändringen resulterar i att variabeln salesFiles inte används. Men vi lämnar den här för tillfället eftersom vi kommer att använda den igen i en framtida lektion.

  2. Program.cs I filen skapar du en variabel med namnet salesTotalDir, som innehåller sökvägen till katalogen salesTotalDir:

    var currentDirectory = Directory.GetCurrentDirectory();
    var storesDirectory = Path.Combine(currentDirectory, "stores");
    
    var salesTotalDir = Path.Combine(currentDirectory, "salesTotalDir");
    
    var salesFiles = FindFiles(storesDirectory);
    
  3. Program.cs I filen lägger du till kod för att skapa katalogen:

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

Skriva filen totals.txt

  1. Program.cs I filen lägger du till koden för att skapa en tom fil med namnet totals.txt i den nyligen skapade katalogen salesTotalDir. Använd en tom sträng för filens innehåll för tillfället:

    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. Spara filen genom att trycka på Ctrl+S / Cmd+S.

  3. Kör programmet genom att köra följande kod från terminalprompten:

    dotnet run
    
  4. Välj ikonen Uppdatera i filutforskaren.

    Skärmbild av ikonen Uppdatera i filutforskaren för Cloud Shell-redigeringsprogrammet.

Du är nästan klar. Det sista steget är att läsa försäljningsfilerna, addera summorna och skriva totalsumman till den nya filen totals.txt. Nästa steg är att lära dig hur du läser och parsar data i filer.

Har du fastnat?

Om du fastnade under den här övningen är det här den fullständiga koden fram till den här punkten:

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