Les manipulations de fichiers se divisent en deux catégories principales :
- La création, l'ajout ou la suppression de données et la lecture de fichiers.
- Le déplacement, la copie et la suppression de fichiers.
La création de fichiers
Trois moyens différents permettent de créer un fichier de texte vide (parfois désigné comme "flux de texte").Le premier moyen est l'utilisation de la méthode CreateTextFile. L'exemple ci-dessous illustre la création d'un fichier de texte à l'aide de cette méthode dans VBScript :
Pour utiliser cette méthode dans JScript, utilisez le code suivant :Dim fso, f1 Set fso = CreateObject("Scripting.FileSystemObject") Set f1 = fso.CreateTextFile("c:\testfile.txt", True)
Cet exemple de code illustre l'emploi de la méthode CreateTextFile dans le FileSystemObject.var fso, f1; fso = new ActiveXObject("Scripting.FileSystemObject"); f1 = fso.CreateTextFile("c:\\testfile.txt", true);
Le second moyen de créer un fichier de texte consiste à utiliser la méthode OpenTextFile de l'objet FileSystemObject avec l'indicateur ForWriting. Dans VBScript, le code ressemble à ceci :
Pour créer un fichier de texte en utilisant cette méthode dans JScript, utilisez le code suivant :Dim fso, ts Const ForWriting = 2 Set fso = CreateObject("Scripting. FileSystemObject") Set ts = fso.OpenTextFile("c:\test.txt", ForWriting, True)
Le troisième moyen de créer un fichier de texte consiste à utiliser la méthode OpenAsTextStream avec l'indicateur ForWriting. Pour cette méthode, utilisez le code ci-dessous dans VBScript :var fso, ts; var ForWriting= 2; fso = new ActiveXObject("Scripting.FileSystemObject"); ts = fso.OpenTextFile("c:\\test.txt", ForWriting, true);
Dans JScript, utilisez le code de l'exemple ci-dessous :Dim fso, f1, ts Const ForWriting = 2 Set fso = CreateObject("Scripting.FileSystemObject") fso.CreateTextFile ("c:\test1.txt") Set f1 = fso.GetFile("c:\test1.txt") Set ts = f1.OpenAsTextStream(ForWriting, True)
var fso, f1, ts; var ForWriting = 2; fso = new ActiveXObject("Scripting.FileSystemObject"); fso.CreateTextFile ("c:\\test1.txt"); f1 = fso.GetFile("c:\\test1.txt"); ts = f1.OpenAsTextStream(ForWriting, true);
Ajout de données dans le fichier
Une fois le fichier créé, procédez ainsi pour ajouter des données au fichier :
Pour ouvrir un fichier existant, utilisez soit la méthode OpenTextFile de l'objet FileSystemObject soit la méthode OpenAsTextStream de l'objet File.
- Ouvrez le fichier.
- Écrivez les données.
- Fermez le fichier.
Pour écrire des données dans le fichier de texte, utilisez les méthodes Write, WriteLine ou WriteBlankLines de l'objet TextStream, en fonction des tâches répertoriées dans le tableau ci-dessous.
Tâche Méthode Écrire des données dans un fichier de texte ouvert sans caractère de nouvelle ligne final. Write Écrire des données dans un fichier de texte ouvert avec un caractère de nouvelle ligne final. WriteLine Écrire une ou plusieurs lignes blanches dans un fichier de texte ouvert. WriteBlankLines Cet exemple de code illustre l'emploi des méthodes Write, WriteLine et WriteBlankLines dans le FileSystemObject.
Pour fermer un fichier ouvert, utilisez la méthode Close de l'objet TextStream.
Cet exemple de code illustre l'emploi de la méthode Close dans le FileSystemObject.
Remarque Le caractère de saut de ligne contient un ou plusieurs caractères (en fonction du système d'exploitation) qui avancent le curseur au début de la ligne d'après (retour chariot/saut de ligne). Tenez compte du fait que certaines chaînes se terminent déjà par ce type de caractères non imprimables. L'exemple VBScript suivant montre comment ouvrir un fichier, utiliser les trois méthodes d'écritures pour ajouter des données au fichier, puis fermer le fichier:
Cet exemple illustre l'utilisation de ces trois méthodes dans JScript :Sub CreateFile() Dim fso, tf Set fso = CreateObject("Scripting.FileSystemObject") Set tf = fso.CreateTextFile("c:\testfile.txt", True) ' Écrire une ligne terminée par un caractère de nouvelle ligne. tf.WriteLine("Testing 1, 2, 3.") ' Écrire trois caractères de nouvelle ligne dans le fichier tf.WriteBlankLines(3) ' Écrire une ligne. tf.Write ("Ceci est un essai.") tf.Close End Sub
function CreateFile() { var fso, tf; fso = new ActiveXObject("Scripting.FileSystemObject"); tf = fso.CreateTextFile("c:\\testfile.txt", true); // Écrit une ligne terminée par un caractère de nouvelle ligne. tf.WriteLine("Testing 1, 2, 3.") ; // Écrit trois caractères de nouvelle ligne dans le fichier. tf.WriteBlankLines(3) ; // Écrit une ligne. tf.Write ("Ceci est un essai."); tf.Close(); }
Lecture de fichiers
Pour lire des données d'un fichier de texte, utilisez les méthodes Read, ReadLine ou ReadAll de l'objet TextStream. Le tableau suivant présente les méthodes à utiliser en fonction des tâches à accomplir.
Tâche Méthode Lire un nombre spécifié de caractères d'un fichier. Read Lire une ligne entière (jusqu'au caractère de nouvelle ligne non compris). ReadLine Lire le contenu entier d'un fichier de texte. ReadAll Cet exemple de code illustre l'emploi des méthodes ReadAll et ReadLine dans le FileSystemObject.
Si vous utilisez la méthode Read ou ReadLine et voulez accéder directement à un emplacement de données particulier, utilisez la méthode Skip ou SkipLine. Le texte issu des méthodes de lecture est stocké dans une chaîne qui peut être affichée dans un contrôle, analysé par des fonctions de chaîne (comme Left, Right et Mid), concaténé, etc.
L'exemple VBScript suivant montre comment ouvrir un fichier, écrire puis lire :
Ce code effectue les mêmes opérations dans JScript :Sub ReadFiles Dim fso, f1, ts, s Const ForReading = 1 Set fso = CreateObject("Scripting.FileSystemObject") Set f1 = fso.CreateTextFile("c:\testfile.txt", True) ' Écrire une ligne. Response.Write "Écriture du fichier <br>" f1.WriteLine "Bonjour" f1.WriteBlankLines(1) f1.Close ' Lire le contenu du fichier. Response.Write "Lecture du fichier <br>" Set ts = fso.OpenTextFile("c:\testfile.txt", ForReading) s = ts.ReadLine Response.Write "Contenu du fichier = '" & s & "'" ts.Close End Sub
function ReadFiles() { var fso, f1, ts, s; var ForReading = 1; fso = new ActiveXObject("Scripting.FileSystemObject"); f1 = fso.CreateTextFile("c:\\testfile.txt", true); // Écrire une ligne. Response.Write("Écriture du fichier <br>"); f1.WriteLine("Bonjour"); f1.WriteBlankLines(1); f1.Close(); // Lire le contenu du fichier. Response.Write("Lecture du fichier <br>"); ts = fso.OpenTextFile("c:\\testfile.txt", ForReading); s = ts.ReadLine(); Response.Write("Contenu du fichier = '" + s + "'"); ts.Close(); }
Déplacement, copie et suppression de fichiers
Le modèle d'objet FSO offre deux méthodes pour chacune des opérations de déplacement, copie et suppression de fichier, comme le présente le tableau suivant.
Tâche Méthode Déplacer un fichier File.Move ou FileSystemObject.MoveFile Copier un fichier File.Copy ou FileSystemObject.CopyFile Supprimer un fichier File.Delete ou FileSystemObject.DeleteFile Cet exemple de code illustre les deux façons de supprimer un fichier dans le FileSystemObject.
L'exemple VBScript suivant crée un fichier de texte dans le répertoire racine du lecteur C, y écrit des informations, le déplace dans un répertoire nommé \tmp, le copie dans un répertoire nommé \temp puis supprime les deux copies des deux répertoires.
Pour exécuter cet exemple, créez des répertoires nommés \tmp et \temp sous la racine du lecteur C:
Le code suivant vous présente la même opération dans JScript :Sub ManipFiles Dim fso, f1, f2, s Set fso = CreateObject("Scripting.FileSystemObject") Set f1 = fso.CreateTextFile("c:\testfile.txt", True) Response.Write "Écriture du fichier <br>" ' Écrire une ligne. f1.Write ("Ceci est un essai.") ' Fermeture du fichier en écriture. f1.Close Response.Write "Déplacement du fichier vers c:\tmp <br>" ' Obtenir un descripteur vers le fichier sous la racine de C:\. Set f2 = fso.GetFile("c:\testfile.txt") ' Déplacer le fichier vers le répertoire /tmp. f2.Move ("c:\tmp\testfile.txt") Response.Write "Copie du fichier vers c:\temp <br>" ' Copier le fichier vers \temp. f2.Copy ("c:\temp\testfile.txt") Response.Write "Suppression des fichiers <br>" ' Obtenir des descripteurs vers l'emplacement actuel des fichiers. Set f2 = fso.GetFile("c:\tmp\testfile.txt") Set f3 = fso.GetFile("c:\temp\testfile.txt") ' Supprimer les fichiers. f2.Delete f3.Delete Response.Write "Terminé!" End Sub
function ManipFiles() { var fso, f1, f2, s; fso = new ActiveXObject("Scripting.FileSystemObject"); f1 = fso.CreateTextFile("c:\\testfile.txt", true); Response.Write("Écriture du fichier <br>"); // Écrire une ligne. f1.Write("Ceci est un essai."); // Fermeture du fichier en écriture. f1.Close(); Response.Write("Déplacement du fichier vers c:\\tmp <br>"); // Obtenir un descripteur vers le fichier sous la racine de C:\. f2 = fso.GetFile("c:\\testfile.txt"); // Déplacer le fichier vers le répertoire /tmp. f2.Move ("c:\\tmp\\testfile.txt"); Response.Write("Copie du fichier vers c:\\temp <br>"); // Copier le fichier vers \temp. f2.Copy ("c:\\temp\\testfile.txt"); Response.Write("Suppression des fichiers <br>"); // Obtenir des descripteurs vers l'emplacement actuel des fichiers. f2 = fso.GetFile("c:\\tmp\\testfile.txt"); f3 = fso.GetFile("c:\\temp\\testfile.txt"); // Supprimer les fichiers. f2.Delete(); f3.Delete(); Response.Write("Terminé!"); }