Alıştırma - Dosya ve dizin oluşturma
.NET'teki File ve Directory sınıfları program aracılığıyla yeni dosya ve dizinler oluşturmanızı sağlar.
Önceki bölümlerde .NET ile her türlü klasör yapısını okuyup .json uzantısına sahip dosyaları bulabilen sağlam bir komut satırı uygulaması oluşturdunuz. Şimdi, içindeki verileri özetlemek için bu dosyaları okumanız ve ardından toplamları salesTotals adlı yeni bir dizinde yeni bir dosyaya yazmanız gerekir.
Bu alıştırmada salesTotalDir dizinini ve satış toplamlarının harmanlandığı totals.txt dosyasını oluşturacaksınız.
SalesTotals dizinini oluşturma
Program.csdosyasında, işlevindenforeachdöndürülen her dosya adını yineleyen ve KonsolFindFilesyazan döngüsünü kaldırın. Bu değişiklik değişkeninsalesFileskullanılmayana neden olur. Ancak, bunu şimdilik burada bırakacağız çünkü gelecekteki bir derste tekrar kullanacağız.Program.csdosyasında salesTotalDirsalesTotalDiryolunu tutan adlı bir değişken oluşturun:var currentDirectory = Directory.GetCurrentDirectory(); var storesDirectory = Path.Combine(currentDirectory, "stores"); var salesTotalDir = Path.Combine(currentDirectory, "salesTotalDir"); var salesFiles = FindFiles(storesDirectory);Program.csdosyasında, dizini oluşturmak için kod ekleyin: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);
totals.txt dosyasını yazma
Program.csdosyasına, yeni oluşturulan salesTotalDir dizininde totals.txt adlı boş bir dosya oluşturmak için kodu ekleyin. Dosyanın içeriği için şimdilik boş bir dize kullanın: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);Dosyayı kaydetmek için Ctrl+S / Cmd+S tuşlarına basın.
Terminal isteminden aşağıdaki kodu çalıştırarak programı çalıştırın:
dotnet runDosyalar gezgininde Yenile simgesini seçin.
Programı tamamlamak üzeresiniz. Son adım, satış dosyalarını okumak, toplamları eklemek ve genel toplamı yeni totals.txt dosyasına yazmaktır. Sonraki ünitede dosyaların içindeki verileri okumayı ve ayrıştırmayı öğreneceksiniz.
Takıldınız mı?
Bu alıştırma sırasında takıldıysanız şu noktaya kadar olan kodun tamamı aşağıdadır:
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;
}