Ćwiczenie — tworzenie plików i katalogów

Ukończone

Klasy File i Directory na platformie .NET umożliwiają programowe tworzenie nowych plików i katalogów.

Do tej pory utworzyliśmy niezawodną aplikację wiersza polecenia na platformie .NET, która potrafi odczytywać dowolną strukturę plików i znajdować pliki z rozszerzeniem json. Teraz musisz odczytać te pliki, aby podsumować w nich dane, a następnie zapisać sumy do nowego pliku w nowym katalogu o nazwie salesTotals.

W tym ćwiczeniu utworzysz katalog salesTotalDir i plik totals.txt , w którym są sortowane sumy sprzedaży.

Tworzenie katalogu SalesTotals

  1. Program.cs W pliku usuń pętlęforeach, która iteruje i zapisuje każdą nazwę pliku zwróconą FindFiles z funkcji do danych wyjściowych konsoli. Ta zmiana powoduje, że zmienna salesFiles będzie nieużywane. Jednak na razie pozostawimy go tutaj, ponieważ użyjemy go ponownie w przyszłej lekcji.

  2. Program.cs W pliku utwórz zmienną o nazwie salesTotalDir, która przechowuje ścieżkę do katalogu salesTotalDir:

    var currentDirectory = Directory.GetCurrentDirectory();
    var storesDirectory = Path.Combine(currentDirectory, "stores");
    
    var salesTotalDir = Path.Combine(currentDirectory, "salesTotalDir");
    
    var salesFiles = FindFiles(storesDirectory);
    
  3. Program.cs W pliku dodaj kod, aby utworzyć katalog:

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

Zapisywanie pliku totals.txt

  1. Program.cs W pliku dodaj kod, aby utworzyć pusty plik o nazwie totals.txt wewnątrz nowo utworzonego katalogu salesTotalDir. Użyj pustego ciągu dla zawartości pliku na razie:

    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. Naciśnij Ctrl+S / Cmd+S, aby zapisać plik.

  3. Uruchom program, uruchamiając następujący kod z poziomu wiersza polecenia terminalu:

    dotnet run
    
  4. Naciśnij ikonę odśwież w eksploratorze Pliki.

    Zrzut ekranu ikony odświeżania w eksploratorze Pliki edytora Cloud Shell.

Prawie gotowe. Ostatnim krokiem jest odczytanie plików sprzedaży, dodanie sum i zapisanie sumy końcowej do nowego pliku totals.txt. Następnie dowiesz się, jak odczytywać i analizować dane w plikach.

Nie wiesz, co zrobić?

Jeśli podczas tego ćwiczenia utkniesz, oto pełny kod do tego momentu:

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