Documents utilisation des flus

Documents utilisation des flus

3 Utilisation des flux 2 Agir sur le système de fichier Afin d’agir sur le système de fichier, le Framework . NET met ? notre disposition deux catégories de classes Les classes d’information. û Les classes utilitaires Les classes d’information vont nous permettre d’accéder aux informations du système de ‘Vip next page fichier et de manipul pourrez manipuler le fichiers, des dossiers Dans les classes info û Les classes System. dérivant de utilisant vous OF gories de classes : Directorylnfo System. lO. FileSystemlnfo. Û La classe System. lO. Drivelnfo. Drivelnfo n’hérite pas de System.

IO. FileSystemInfo car il ne artage pas exactement les mêmes comportements que Filelnfo et Directorylnfo. En effet, on ne pourra pas, par exemple, ajouter ou supprimer un lecteur de l’ordinateur. Les classes utilitaires fournissent des méthodes statiques qui peuvent agir sur les fichiers, les répertoires ou les chemins d’accès. Voici les trois principales classes utilitaires Û La classe File pour la manipulation des fichiers. Permet d’obtenir ou de définir les FileAttributes (Par exemple, NotContentlndexed nous indique que le fichier n’est pas indexé pour la recherche windows).

CreationTime Permet d’obtenir ou de définir la date de création. Exists Retourne un booléen indiquant si le fichier ou le répertoire existe. Extension

Désolé, mais les essais complets ne sont disponibles que pour les utilisateurs enregistrés

Choisissez un plan d'adhésion
Permet d’obtenir une chaine de caractère contenant l’extension (Par exemple « . exe FullName Permet de récupérer le chemin complet (chemin absolu). LastAccessTime Permet de récupérer ou de définir la date du dernier accès. LastWriteTime Permet de récupérer ou de définir la date de la dernière écriture. Name Permet de récupérer le nom du fichier ou du répertoire.

Dans le cas du fichier, c’est le nom suivit de Pextension, et dans le cas du répertoire, c’est le dernier répertoire de la hiérarchie. Méthodes Classe Description Supprime le fichier ou le répertoire. Refresh Met à jour les données de la classe avec les informations du système de fichier les plus récentes. 5 0 taille du fichier en octets. Crée un objet StreamWriter (sera détaillé plus bas) qui va nous permettre de dajouter du texte à la fin du fichier. Permet de créer une copie du fichier, prend le nouvel emplacement comme argument. Permet de créer un fichier (en l’écrasant SI il existe déjà) basé sur le Filelnfo courant.

Retourne un objet FileStream (sera détaillé plus bas). Crée un nouveau fichier et retourne un objet StreamWriter (Voir artie 2 de ce chapitre). Déchiffre un fichier. Cette opération ne peut être effectuée que par l’utilisateur qui a chiffré le fichier. Chiffre un fichier qui ne pourra être décrypté que par le même utilisateur. Déplace un fichier dans un nouvel emplacement. (Si le nom de fichier est indiqué dans le chemin d’accès, celui-ci peut être renommé) Ouvre un fichier avec des privilèges spécifiques (Lecture, Ecriture, Lecture/Ecriture) Ouvre un fichier en mode lecture seule.

Ouvre un fichier et retourne un StreamReader (Voir partie 2 de ce chapitre). Ouvre un fichier en mode écriture seule. Remplace le fichier passé en paramètre par les informations du Filelnfo courant. 6 répertoire en tant que fils du répertoire GetDirectories Permet d’obtenir un tableau d’objets Directorylnfo représentant la liste de chaque dossier contenus dans le dossier actuel. GetFiles Permet d’obtenir un tableau d’objets Filelnfo représentant les fichiers contenus dans le répertoire courant.

GetFileSystemlnfos Permet d’obtenir un tableau d’objets Filesystemlnfo qui représente les fichiers et dossiers du répertoire courant. M oveTo Déplace le répertoire courant dans un nouvel emplacement. (Vous ne ouvez déplacer un répertoire si un répertoire du même nom existe déjà, et vous ne pouvez pas déplacer le répertoire sur un autre lecteur) Create CreateSubdirectory 2. 1 . 4 Premier exemple de manipulation des fichiers et dossiers Afin de comprendre le comportement de certains des membres précédents, nous vous proposons d’illustrer tout cela par un exemple. ub Main() Dim MyDirectory As Directorylnfo – New Directorylnfo– Console. WriteLine(« Répertoire arent : MvDirectorv. Parent. Name 4 0 MyFiIe. Name) Console. WriteLine(‘Path : MyFile. FullName) Console. WriteLine(« Length : MyFile. Length) End sub Directorylnfo MyDirectory = new Directorylnfo–— – Console. WriteLine(‘Répertoire parent : {OF’, MyDirectory. Parent. Name); du sous répertoire Dossier2 »); Filesystemlnfo-— foreach (Filesystemlnfo MyBoth in MyDirectory. GetFileSystemlnfos()) Console. WriteLine(« —« ); Console. WriteLine(« Name : MyBoth. Name); : MyBoth.

FullName); Console. WriteLine(« Date de création : MYB0th. creationTime); Console. WriteLine(« Extension : MyBoth. Extension); Filelnfo MyFile new MYFile. createo; Console. WriteLine(« – —Partie Filelnfo— : MyFile. Name); Console. WriteLine(‘Path : {01 », MyFile. FullName); Console. WriteLine(« Length : {OF’, MyFile. ength); Après exécution, voila ce que retourne la console . Nous avons donc instancié un objet Directorylnfo dont nous affichons son répertoire parent la racine du volume) puis no un sous répertoire appelé la taille de ce fichier est de O. 11 2. Les classes utilitaire Nous allons vous définir les méthodes statiques qui sont fournis par les classes path et Directory. Ces deux classes permettent respectivement d’effectuer des opérations de manières simples sur les chemins d’accès et sur les dossiers. 2. 2. 1 La classe Path Retourne une chaine dont on a changé l’extension. Le chemin initial est passé en premier paramètre et la nouvelle extension en second. Combine Combine deux chemins s’ils sont compatibles. GetDirectoryName Retourne le nom du répertoire contenu dans le chemin passé en paramètre.

GetExtension Retourne l’extension du fichier contenu dans le chemin passé en paramètre GetFileName Retourne le nom du fichier contenu dans le chemin passé en paramètre. GetFileNameWithourExtension Retourne le nom du fichier sans extension contenu dans le chemin passé en paramèt 6 0 Path. ChangeExtension(chemin, « bak »)) string chemin = Path. GetRandomFileName(); Console _ Console. WriteLine(« Extension: Path. GetExtension(chemin)); Console. WriteLine(« Nouveau Chemin: « bak »)); Ce code créé un nom de fichier temporaire, puis un nom de fichier aléatoire.

Nous affichons l’extension de notre nom de fichier aléatoire et nous décidons de la changer en . bak. Si la méthode GetTempFileName a généré un fichier ayant un nom aléatoire dans le dossier temporaire, ce n’est nullement le cas pour la méthode GetRandomFileName qui ne fait que créer 12 un nom de fichier aléatoire. Si on souhaite créer le fichier, il faudra utiliser conjointement Filelnfo ou File avec Path. 13 2. 2. 2 La classe Directory Cette classe fournit des m ues permettant la dernier accès au répertoire. GetLastWriteTime Retourne l’heure de la dernière écriture sur le répertoire.

GetLogicaIDrives Retourne un tableau de chaine contenant les lecteurs du système sous la forme « CA : Retourne le répertoire parent. Move Déplace un fichier ou un répertoire (et son contenus) à un autre emplacement. SetCreationTime Permet de définir rheure où le dossier a été crée. SetCurrentDirectory Permet de définir le dossier passé en paramètre comme le répertoire de travail. SetLastAccessTime Permet de définir Iheure où le répertoire a été accédé pour la ernière fois. SetLastWriteTime Permet de définir l’heure où le répertoire à été écrit pour la dernière fois.

Elle s’utilise de manière similaire à la classe path. 14 2. 2. 3 La classe FileSystemWatcher Cette classe permet la surveillance des modifications apportées au système de fichiers. Pa B0 fichier ou un répertoire a changé. Created Est déclenché quand un fichier ou un répertoire est crée. Est déclenché quand un fichier ou un répertoire est supprimé. Renamed Est déclenché quand un fichier ou un répertoire est renommé. 15 Afin de mieux visualiser l’effet de cette classe, VOICI un exemple ui va se charger de surveiller les changements effectués sur static vold Main(string[] args) FileSystemWatcher watcher watcher.

Path = watcher. Created watcher. Deleted watcher. Changed watcher. Renamed new FileSvstemEventHandler( new FileSystemWatcher(); d); watcher_Deleted) AddHandler watcher. Changed, watcher_Changed) AddHandler watcher. Renamed, watcher_Renamed) New FileSystemEventHandler(AddressOf New RenamedEventHandler(AddressOf watcher. EnableRaisingEvents – True watcher. lncludesubdirectories = True End Sub Public Sub watcher_Renamed(ByVal sender As Object, ByVal e As RenamedEventArgs) Console. WriteLine(« lJn dossier ou un fichier a été renommé({O}): {1} », e.

ChangeType, e. FullPath) Public Sub watcher_Changed(ByVal sender As Object, ByVal e As FileSystemEventArgs) dossier ou un fichier a été Public Sub watcher_Deleted(ByVaI sender As Object, ByVal e As File SystemEventArgs) Console. WriteLine( « Un dossier ou un fichier a été supprimé({0}): e. Change ype, e. FuIlPath) Public Sub sender As Object, ByVal e As Console. WriteLine(« lJn dossier ou un fichier a été crée({0}): {IF’, e. ChangeType, e. FulIPath) Ce code instancie la class 0 10 tcher. Ensuite il