Ćwiczenie — tworzenie plików i katalogów
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
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 zmiennasalesFiles
będzie nieużywane. Jednak na razie pozostawimy go tutaj, ponieważ użyjemy go ponownie w przyszłej lekcji.Program.cs
W pliku utwórz zmienną o nazwiesalesTotalDir
, 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);
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
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);
Naciśnij Ctrl+S / Cmd+S, aby zapisać plik.
Uruchom program, uruchamiając następujący kod z poziomu wiersza polecenia terminalu:
dotnet run
Naciśnij ikonę odśwież w eksploratorze Pliki.
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;
}