Académique Documents
Professionnel Documents
Culture Documents
Net)
Utilisation et manipulation de fichiers texte dans vos applications ASP.Net grâce aux classes
fournies par le .Net Framework.
Introduction...................................................................................................................................................................3
A - Les classes dans le Framework .Net.................................................................................................................... 3
B - Lecture et écriture de fichiers texte.......................................................................................................................3
B-1 - La lecture...................................................................................................................................................... 3
B-2 - L'écriture........................................................................................................................................................ 4
C - Choix de l'encodage du fichier..............................................................................................................................5
D - Autres opérations sur les fichiers..........................................................................................................................5
D-1 - Opérations en lecture sur les fichiers...........................................................................................................5
D-2 - Opérations en écriture.................................................................................................................................. 6
Conclusion....................................................................................................................................................................7
Ressources...................................................................................................................................................................7
Remerciements............................................................................................................................................................ 8
-2-
© 2004 Ronald VASSEUR - Tous droits réservés : Ronald VASSEUR. Toute reproduction, utilisation ou diffusion de ce document par quelque moyen que ce soit autre que pour un usage
personnel doit faire l'objet d'une autorisation écrite préalable de la part de : Ronald VASSEUR, le propriétaire des droits intellectuels.
https://webman.developpez.com/articles/aspnet/file/vbnet/
.Net et la manipulation de fichiers texte (VB.Net) par Ronald VASSEUR
Introduction
La manipulation de fichiers texte peut être fort utile dans la réalisation d'applications .Net qu'elles soient WebForm ou
WinForm, il est très fréquent d'avoir besoin de stocker des informations dans un fichier. Ce que nous allons effectuer
au cours de l'article est en fait apprendre à lire et écrire des fichiers, effectuer des opérations sur ceux-ci et interagir
avec leurs attributs, ce qui implique consultation et modification.
Une fois de plus le Framework possède toutes les classes nécessaires à la réalisation d'opérations de base, voire
un petit peu plus complexes. Nous allons voir rapidement quelles sont ces classes et quelle est leur utilité.
Tout d'abord je précise que l'espace de noms concerné est System.IO, il faudra donc l'importer pour utiliser ses
différentes classes. Pour cela il faut ajouter cette ligne de code :
Imports System.IO
Remarque : Ici nous travaillons avec des fichiers texte, mais le framework .Net offre la
possibilité de travailler avec des fichiers binaires (grâce notamment aux classes BinaryReader
et BinaryWriter), ainsi qu'au format XML grâce à l'espace de noms System.XML.
La lecture et l'écriture sont bien évidemment les deux opérations majeures dans la manipulation de fichiers texte.
Pour cela, il existe un certain nombre de classes et de méthodes qui nous aident à les réaliser. Voyons cela d'un
peu plus près.
B-1 - La lecture
Try
' Création d'une instance de StreamReader pour permettre la lecture de notre fichier
Dim monStreamReader As StreamReader = New StreamReader(Server.MapPath(fichier))
Dim ligne As String
-3-
© 2004 Ronald VASSEUR - Tous droits réservés : Ronald VASSEUR. Toute reproduction, utilisation ou diffusion de ce document par quelque moyen que ce soit autre que pour un usage
personnel doit faire l'objet d'une autorisation écrite préalable de la part de : Ronald VASSEUR, le propriétaire des droits intellectuels.
https://webman.developpez.com/articles/aspnet/file/vbnet/
.Net et la manipulation de fichiers texte (VB.Net) par Ronald VASSEUR
Catch ex As Exception
End Try
End Sub
Appel de la fonction permettant la lecture du fichier, vous pouvez voir qu'on passe le chemin relatif du fichier en
paramètre.
lectureFichier("./admin/logs/application.log")
Explication de ce code
Comme toujours, l'important n'est pas d'avoir ce code pour le copier, mais de le comprendre.
L'instanciation du StreamReader
Lors de l'instanciation (désolé, ce terme n'est pas très français, mais on le comprend bien) de cette classe, il est
possible de spécifier le codage employé par notre fichier texte, par défaut, il s'agit d'UTF-8. On passe aussi lors de
l'instanciation le chemin physique du fichier, ici comme nous sommes dans une application ASP.Net nous utilisons
Server.MapPath() qui permet d'obtenir le chemin physique à partir du chemin relatif du fichier, cela permet d'éviter
la difficile gestion des chemins relatifs et physiques.
Le Do … Loop
Cette boucle permet d'extraire ligne après ligne le contenu de notre fichier, et cela grâce à la méthode ReadLine()
appliquée à notre StreamReader. Cette méthode permet donc de lire chaque ligne et retourne les données lues sous
forme de chaînes. La boucle se poursuit tant qu'il reste une ligne à lire, cela est géré par le Until ligne Is Nothing.
Il existe aussi la méthode Read() qui permet de lire un flux de données sans faire la distinction de lignes. Read() et
ReadLine() sont des méthodes de la classe TextReader.
monStreamReader.Close()
Cette méthode est extrêmement importante, il ne faut surtout pas l'oublier. En effet, en cas d'oubli de fermeture de
votre StreamReader, vous ne pourrez plus accéder à votre fichier par la suite, car, en fait, le processus ASP.Net
aura mis un verrou sur ce fichier. Pour retrouver un accès normal au fichier, il faudrait alors redémarrer le processus
ASP.Net, vous voyez donc qu'il est très important de ne pas oublier de fermer ce StreamReader.
B-2 - L'écriture
Try
Catch ex As Exception
-4-
© 2004 Ronald VASSEUR - Tous droits réservés : Ronald VASSEUR. Toute reproduction, utilisation ou diffusion de ce document par quelque moyen que ce soit autre que pour un usage
personnel doit faire l'objet d'une autorisation écrite préalable de la part de : Ronald VASSEUR, le propriétaire des droits intellectuels.
https://webman.developpez.com/articles/aspnet/file/vbnet/
.Net et la manipulation de fichiers texte (VB.Net) par Ronald VASSEUR
End Try
End Sub
Explication du code
Instanciation du StreamWriter
Nous créons ici une instance, StreamWriter qui permet d'écrire dans un flux, et comme StreamReader, il est possible
de spécifier le codage utilisé, par défaut il s'agit ici aussi d'UTF-8. Nous passons le chemin physique du fichier dans
le constructeur.
WriteLine()
Ici, la méthode WriteLine nous permet d'écrire dans notre fichier, elle a la particularité d'écrire ligne après ligne, c'est-
à-dire qu’à chaque fois qu'on l'appelle, elle ajoute une nouvelle ligne à notre fichier.
Write()
Comme WriteLine, la méthode Write permet d'écrire dans un fichier sauf qu'elle écrit un flux sans se préoccuper des
lignes, elle est donc utile quand le retour à la ligne n'est pas souhaité après chaque ajout dans le fichier. Nous ne
l'utilisons pas ici, mais je vous l'indique, car elle très utile.
monStreamWriter.Close()
Comme pour le StreamReader, il faut absolument fermer le StreamWriter après utilisation sous peine des mêmes
conséquences, à savoir un accès impossible au fichier sans un redémarrage du processus ASP.Net.
Remarque : attention, le compte ASPNET (sous Windows 2003 Server ce compte n'est pas
ASPNET, mais IIS_WPG) sur le serveur doit avoir une permission en écriture sur le répertoire
devant contenir votre fichier. Si le compte ASPNET n'a pas les permissions adéquates, cela
va soulever une exception pour accès refusé au système de fichiers.
Comme je vous l'ai expliqué précédemment, vous pouvez choisir le codage à utiliser avec votre StreamWriter lorsque
vous allez écrire dans ce fichier. Pour cela, il faut ajouter l'encodage au constructeur de votre StreamWriter, rien de
bien compliqué.
En dehors de la lecture et de l'écriture de fichier, nous pouvons avoir besoin d'effectuer d'autres opérations sur les
fichiers, nous allons voir les principales ici :
-5-
© 2004 Ronald VASSEUR - Tous droits réservés : Ronald VASSEUR. Toute reproduction, utilisation ou diffusion de ce document par quelque moyen que ce soit autre que pour un usage
personnel doit faire l'objet d'une autorisation écrite préalable de la part de : Ronald VASSEUR, le propriétaire des droits intellectuels.
https://webman.developpez.com/articles/aspnet/file/vbnet/
.Net et la manipulation de fichiers texte (VB.Net) par Ronald VASSEUR
Exemple :
Date de création
La date de création d'un fichier est accessible grâce à la méthode CreationTime() de la classe FileInfo.
Exemple :
Dernière modification
La dernière modification d'un fichier est une information qui est stockée dans le fichier, la méthode LastWriteTime()
permet d'y accéder.
Exemple :
Extension du fichier
Nous allons ici récupérer l'extension du fichier que l'on souhaite, pour cela il faut juste utiliser la méthode Extension.
Exemple :
Nous avons vu comment récupérer certains attributs et comment réaliser certaines manipulations, mais il y en a
d'autres, le but de cet article n'étant pas de les cataloguer, je vous renvoie à la documentation des classes concernées.
La démarche restant la même pour l'ensemble des autres attributs et opérations, cela ne vous posera pas de problème
particulier.
Nous avons vu ici dans un premier temps comment accéder aux diverses informations « en lecture », c'est-à-dire
sans aucune modification du fichier, nous allons maintenant voir ce qu'il est possible « en écriture ».
Effacer un fichier
Permet d'effacer un fichier, vous pouvez voir que c'est une opération plus qu'aisée, en effet, une méthode a été
prévue pour cela, il s'agit simplement de la méthode Delete().
Exemple :
-6-
© 2004 Ronald VASSEUR - Tous droits réservés : Ronald VASSEUR. Toute reproduction, utilisation ou diffusion de ce document par quelque moyen que ce soit autre que pour un usage
personnel doit faire l'objet d'une autorisation écrite préalable de la part de : Ronald VASSEUR, le propriétaire des droits intellectuels.
https://webman.developpez.com/articles/aspnet/file/vbnet/
.Net et la manipulation de fichiers texte (VB.Net) par Ronald VASSEUR
Créer un fichier
Création d'un fichier vide, il faut bien entendu que le compte ASPNET ait les droits d'écriture sur le répertoire concerné.
Exemple :
Conclusion
Le bilan que l'on peut tirer de cet article est que l'on peut réaliser quasiment tout ce qui est imaginable, ou enfin
presque… Le Framework .Net offre les classes nécessaires à la manipulation de fichiers texte.
Cependant, nous sommes dans une application ASP.Net donc il ne faut pas oublier que les fichiers manipulés le sont
côté serveur et non côté client. De plus, il faut définir les droits nécessaires (notamment en écriture) sur ces fichiers
et les répertoires parents, sans cela, une exception sera levée pour « accès refusé ». Je le rappelle si c'est encore
nécessaire, le compte utilisé par une application ASP.Net est tout simplement ASPNET (sauf sous Windows Server
2003, c'est alors le compte IIS_WPG).
Bon codage et profitez bien de ce que nous offre le .Net Framework dans le domaine de la manipulation de fichiers
texte !
Ressources
-7-
© 2004 Ronald VASSEUR - Tous droits réservés : Ronald VASSEUR. Toute reproduction, utilisation ou diffusion de ce document par quelque moyen que ce soit autre que pour un usage
personnel doit faire l'objet d'une autorisation écrite préalable de la part de : Ronald VASSEUR, le propriétaire des droits intellectuels.
https://webman.developpez.com/articles/aspnet/file/vbnet/
.Net et la manipulation de fichiers texte (VB.Net) par Ronald VASSEUR
Remerciements
-8-
© 2004 Ronald VASSEUR - Tous droits réservés : Ronald VASSEUR. Toute reproduction, utilisation ou diffusion de ce document par quelque moyen que ce soit autre que pour un usage
personnel doit faire l'objet d'une autorisation écrite préalable de la part de : Ronald VASSEUR, le propriétaire des droits intellectuels.
https://webman.developpez.com/articles/aspnet/file/vbnet/