Lucrul cu sistemul de fișiere
Majoritatea sarcinilor în programare, într-un fel sau altul, sunt legate de lucrul cu fișiere și directoare. Este posibil să avem nevoie să citim textul dintr-un fișier sau, dimpotrivă, să efectuăm o scriere, să ștergem un fișier sau un întreg director, fără a mai menționa sarcinile mai complexe, cum ar fi crearea unui editor de text și alte sarcini similare.
Framework-ul .NET oferă posibilități extinse pentru gestionarea și manipularea fișierelor și directoarelor, care sunt concentrate în mare parte în spațiul de nume System.IO. Clasele situate în acest spațiu de nume (cum ar fi Stream, StreamWriter, FileStream și altele) permit gestionarea intrării-ieșirii de fișiere.
Lucrul cu discuri
Începem lucrul cu sistemul de fișiere de la cel mai înalt nivel - discurile. Pentru reprezentarea discului în spațiul de nume System.IO, există clasa DriveInfo.
Această clasă are o metodă statică GetDrives(), care returnează numele tuturor discurilor logice ale computerului. De asemenea, oferă o serie de proprietăți utile:
- AvailableFreeSpace: indică volumul spațiului liber disponibil pe disc în bytes
- DriveFormat: obține numele sistemului de fișiere
- DriveType: reprezintă tipul discului
- IsReady: dacă discul este gata (de exemplu, un disc DVD poate să nu fie introdus în unitate)
- Name: obține numele discului
- RootDirectory: returnează directorul rădăcină al discului
- TotalFreeSpace: obține volumul total de spațiu liber pe disc în bytes
- TotalSize: dimensiunea totală a discului în bytes
- VolumeLabel: obține sau setează eticheta volumului
Obținem numele și proprietățile tuturor discurilor de pe calculator:
DriveInfo[] drives = DriveInfo.GetDrives();
foreach (DriveInfo drive in drives)
{
Console.WriteLine($"Nume: {drive.Name}");
Console.WriteLine($"Tip: {drive.DriveType}");
if (drive.IsReady)
{
Console.WriteLine($"Dimensiunea discului: {drive.TotalSize}");
Console.WriteLine($"Spațiu liber: {drive.TotalFreeSpace}");
Console.WriteLine($"Etichetă disc: {drive.VolumeLabel}");
}
Console.WriteLine();
}
Ieșirea în consolă în cazul meu:
Nume: C:\
Tip: Fixed
Dimensiunea discului: 624823205888
Spațiu liber: 58199781376
Etichetă disc:
Nume: D:\
Tip: Fixed
Dimensiunea discului: 105372446720
Spațiu liber: 3887951872
Etichetă disc: Windows10
Nume: E:\
Tip: Fixed
Dimensiunea discului: 17809010688
Spațiu liber: 463650816
Etichetă disc: RECOVERY
Nume: G:\
Tip: Fixed
Dimensiunea discului: 954200064
Spațiu liber: 275193856
Etichetă disc: