Le système de fichiers
Les classes de gestion du système de fichiers
Le Framework .NET fournit une série de classes dans l’espace de noms System.IO de la librairie mscorlib.dll permettant de gérer le système de fichiers au complet : les lecteurs, les dossiers et les fichiers.
1. DriveInfo
La classe DriveInfo fournit les membres permettant d’obtenir des informations sur les lecteurs d’une machine. Sa méthode statique GetDrives retourne un tableau d’objets DriveInfo correspondant aux lecteurs de la machine sur laquelle est exécutée l’instruction :
DriveInfo[] drives = DriveInfo.GetDrives();
La classe DriveInfo peut être instanciée en passant comme argument du constructeur la lettre du lecteur :
DriveInfo driveC = new DriveInfo("C");
Les informations concernant les lecteurs sont exposées par les membres de la classe DriveInfo :
-
AvailableFreeSpace : indique la quantité d’espace libre sur le lecteur en octets.
-
DriveFormat : indique le format du système de fichiers du lecteur. Cela peut être NTFS, FAT32 ou encore CDFS suivant le lecteur.
-
DriveType : indique le type du lecteur en retournant une des valeurs de l’énumération System.IO.DriveType :
-
CDRom pour les lecteurs optiques.
-
Fixed pour les disques durs.
-
Network pour les lecteurs réseau.
-
NoRootDirectory pour un lecteur qui n’a pas de répertoire racine.
-
Ram pour un lecteur RAM.
-
Removable pour les appareils de stockage externe.
-
Unknown lorsque le type du lecteur est inconnu.
-
IsReady : cette propriété booléenne indique si le lecteur est prêt à être utilisé.
-
Name : indique le nom du lecteur, il s’agit de sa lettre d’accès.
-
RootDirectory : indique le chemin de la racine du lecteur en retournant un objet DirectoryInfo.
-
TotalFreeSpace : indique la quantité totale d’espace libre sur le lecteur en octets.
-
TotalSize : indique la quantité totale d’espace du lecteur.
-
VolumeLabel : retourne le nom de volume d’un lecteur. Par exemple : Disque local.
À l’exception de la propriété VolumeLabel, elles sont toutes en lecture seule.
2. Directory et DirectoryInfo
La classe Directory est statique. Elle est utilisée en fournissant le chemin du dossier lors de l’appel d’une méthode statique. Si vous souhaitez n’effectuer...
Travailler avec le système de fichiers
1. Les objets Stream
Les objets Stream sont utilisés pour le transfert de données soit entre une source externe et l’application (il s’agit alors d’une lecture de données), soit entre l’application et une source externe (il s’agit d’écriture de données).
La source externe d’un flux peut provenir d’un fichier, d’un emplacement mémoire ou encore du réseau. Suivant la source, un objet différent sera utilisé. Par exemple, pour un flux en mémoire, on utilisera un objet de type System.IO.MemoryStream tandis que pour le transfert de données au travers d’un protocole réseau, on utilisera la classe System.IO.NetworkStream. Lorsque vous travaillez avec des fichiers, les classes utilisées seront, d’une part, FileStream pour écrire et lire des données binaires en particulier et pour tout type de fichier en général. D’autre part, les classes StreamReader et StreamWriter ont spécialement été conçues pour lire et écrire dans des fichiers texte.
L’avantage d’utiliser un objet distinct pour le transfert de données est de pouvoir rendre plus facile le changement du type de la source externe. En conservant la séparation entre le code de l’application et le concept de la source de données particulière, le code est plus facilement réutilisable.
2. La classe FileStream
La classe FileStream est utilisée pour lire et écrire des fichiers binaires. Son constructeur et ses surcharges peuvent comprendre jusqu’à quatre paramètres permettant de déterminer le fichier, le mode d’ouverture, le type d’accès et le type de verrouillage :
FileStream stream = new FileStream(@"C:\fichier.dat",
FileMode.OpenOrCreate,
FileAccess.ReadWrite,
FileShare.None);...