Composant d'accès aux fichiers  

Outre les objets ASP natifs (requête, réponse, etc.) et les divers composants installables (Ad Rotator, Browser Capabilities, etc.), vous avez également accès à un troisième groupe d'objets. Ces objets sont directement lancés à partir de la DLL d'exécution de script de Microsoft (scrrun.dll). Celle-ci présente une fonctionnalité qui se ne trouve ni dans les objets ASP natifs ni dans le script d'exécution VBScript (vbscript.dll). Grâce à la DLL de script, il est possible de lancer des objets qui permettent à votre application de bénéficier de nombreuses fonctions de manipulation de fichiers (il est également possible de créer un objet Dictionary permettant d'exécuter des fonctions de type collection sans avoir recours à de véritables collections).

Toute manipulation de fichiers se fait via l'objet FileSystemObject. Votre application ne dispose que d'un seul de ces objets, grâce auquel vous pouvez visualiser la structure des fichiers du système. Il est ainsi possible de réaliser des fonctions simples, notamment ouvrir et fermer des fichiers, mais également, et c'est ce qui fait toute sa puissance, de lancer les autres objets de manipulation de fichiers : Drive, Folder et File. A l'aide de ces objets, votre application peut presque entièrement contrôler le système de fichiers via une interface de ligne de commande.

Fichiers accessoire/Fichiers DLL requis  
 
 
Scrrun.DLL

Bibliothèque de liens dynamiques contenant tous les objets de script. La DLL est installée par défaut lorsque vous installez IIS 4.0 sur votre serveur Web.

Lancement des composants installables  
 
 

Pour créer une variable objet contenant une instance du composant FileSystemObject, utilisez la méthode CreateObject de l'objet Serveur. La syntaxe de la méthode CreateObject se présente comme suit :

Set objMyObject = Server.CreateObject(strProgId)

où :

    objMyObject représente le nom de la variable FileSystemObject.

    strProgId représente l'identificateur applicatif (ProgID) du composant FileSystemObject, soit Scripting.FileSystemObject.

Exemple

<% 

' The following code uses the CreateObject method of 
' the Server object to instantiate a FileSystemObject.
Dim fsFileSystemObject
Set fsFileSystemObject = _
   Server.CreateObject("Scripting.FileSystemObject")

%>

Pour plus d'informations sur le recours à la méthode CreateObject method, voir l'entrée correspondante au chapitre 9.

Commentaires/Dépannage  
 
 

Les composants d'accès aux fichiers du script scrrun.dll sont très simples à utiliser. En cas d'erreur, les différentes propriétés et méthodes renvoient toutes des messages d'erreur auxquelles vous pourriez vous attendre si vous réalisez une certaine opération par le biais de la ligne de commande. Par exemple, si vous enregistrez ou ouvrez un fichier situé sur une disquette, mais que celle-ci ne se trouve pas dans le lecteur, le message "Disque non prêt" s'affiche.

AtEndOfLine (objet TextStream)  
tsObj.AtEndOfLine
 

Valeur booléenne indiquant si le pointeur de fichier est à la fin de la ligne active. Cette propriété est en lecture seule.

 
Paramètres

Aucun

 
Exemple

Le code suivant lance un objet FileSystemObject et un objet TextStream. Puis il utilise la méthode Read pour lire un caractère à la fois jusqu'à la fin de la ligne. Les propriétés AtEndOfStream et AtEndOfLine sont identiques.

<%

' Set up constants.
Const constForReading       = 1 
Const constTristateFalse    = 0

' Dimension local variables. 
Dim fsoObject     ' FileSystemObject
Dim tsObject      ' TextStream Object
Dim strReturned   ' String variable to hold file contents

' Instantiate the FileSystemObject variable.
Set fsoObject = Server.CreateObject( _
                "Scripting.FileSystemObject")
' Using the OpenTextFile method of fsoObject,
' create a text file.
Set tsObject = _
    fsoObject.OpenTextFile("d:\docs\test.txt", _
    constForReading, constTristateFalse)

' Read one character at a time until the end of the 
' line has been reached.
Do While Not tsObject.AtEndOfLine
   StrReturned = strReturned & tsObject.Read(1)
Loop
. . . [additional code]

%>
 
Remarques

Si vous tentez d'utiliser la propriété AtEndOfLine dans un fichier que vous avez ouvert tout sauf pour le lire, un message d'erreur s'affiche.

La propriété AtEndOfLine ne vous avertit pas lorsque vous avez atteint la fin du fichier.

 
AtEndOfStream (objet TextStream)  
tsObj.AtEndOfStream
 

Valeur booléenne indiquant si vous avez atteint la fin du fichier texte ouvert. Cette propriété est en lecture seule.

 
Paramètres

Aucun

 
Exemple

Le code suivant lance un objet FileSystemObject et un objet TextStream. Puis il utilise la méthode Read pour lire un caractère à la fois jusqu'à la fin du fichier. Les propriétés AtEndOfStream et AtEndOfLine sont identiques.

<%

' Set up constants.
Const constForReading       = 1 
Const constTristateFalse    = 0

' Dimension local variables. 
Dim fsoObject     ' FileSystemObject
Dim tsObject      ' TextStream Object
Dim strReturned   ' String variable to hold file contents.

' Instantiate the FileSystemObject variable.
Set fsoObject = Server.CreateObject( _
                "Scripting.FileSystemObject")
' Using the OpenTextFile method of fsoObject, create 
' a text file.
Set tsObject = _
    fsoObject.OpenTextFile("d:\docs\test.txt", _
    constForReading, constTristateFalse)

' Read one character at a time until the end of the 
' file has been reached
Do While Not tsObject.AtEndOfStream
   StrReturned = strReturned & tsObject.Read(1)
Loop
. . . [additional code]

%>
 
Remarques

Si vous tentez d'utiliser la propriété AtEndOfStream dans un fichier que vous avez ouvert tout sauf pour le lire, un message d'erreur s'affiche.

 
Attributs (objets File et Folder)  
Normal
 

Nombre entier contenant une combinaision de valeurs représentant différents attributs de système de fichiers. Cette propriété est soit en lecture seule, soit en lecture/écriture selon l'attribut de fichier spécifique.

Le tableau ci-dessous dresse la liste des valeurs que la propriété Attributes peut contenir. Pour déterminer si un objet File ou Folder contient une certaine valeur, utilisez l'opérateur bitwise And afin de comparer la valeur de propriété Attributes à la constante spécifique qui vous intéresse. Si le résultat est True (vrai), alors l'attribut spécifique est également True. Voir les exemples suivants :

Constante d'attributs

Valeur

Description

Normal

0

Aucun attribut n'est défini.

ReadOnly

1

Accessible en lecture seule. L'attribut est défini sur lecture/écriture.

Masqué

2

Masqué. L'attribut est défini sur lecture/écriture.

System

4

Fichier système. Cet attribut, défini sur lecture/écriture, n'est valide que pour les objets File.

Volume

8

Nom de volume du lecteur. L'attribut est défini sur lecture seule.

Directory

16

Répertoire. L'attribut est défini sur lecture seule.

Archive

32

Archivé. L'attribut est défini sur lecture/écriture.

Alias

64

Lien ou raccourci permettant d'ouvrir un autre fichier. Cet attribut, défini sur lecture seule, n'est valide que pour les objets File.

Compressed

128

Compressé. Cet attribut, défini sur lecture seule, n'est valide que pour les objets File.

Paramètres
intNewAttributes

Nombre entier contenant la somme des attributs d'un fichier ou d'un dossier. Par exemple, si vous souhaitez définir les attributs Archived et Hidden sur True, la valeur de intNewAttributes est égale à Hidden + Archive, soit 34 (2 + 32). Une fois attribué à la propriété Attributes, ce nombre entier définit généralement ces deux attributs sur True.

 
Exemple

Le code suivant utilise d'abord la propriété Attributes avec un objet File, puis avec un objet Folder.

<%

' Dimension local variables. 
Dim fsoObject     ' FileSystemObject
Dim filObject   ' File Object
Dim fdrObject   ' Folder Object

' Declare constants.
Const Hidden = 2
Const Archive = 32

' Instantiate the FileSystemObject variable.
Set fsoObject = Server.CreateObject( _
                "Scripting.FileSystemObject")
' Using the GetFile method of fsoObject, initialize the 
' File object.
Set filObject = fsoObject.GetFile("d:\docs\test.txt")

' Set the Hidden (value = 2) and Archive (value = 32) 
' attributes for the Test.TXT file.
filObject.Attributes = (Hidden + Archive)

' Using the GetFolder method of fsoObject, initialize 
' the Folder object.
Set fdrObject = fsoObject.GetFolder("d:\docs")

' Determine whether the folder is itself hidden.
If (fdrObject.Attributes And Archive) Then
   ' Folder is hidden.
Else
   ' Folder is NOT hidden.
End If
. . . [additional code]

%>
 
Remarques

Si vous utilisez des attributs en lecture seule réservés aux objets File avec un objet Folder, le résultat est toujours égal à la valeur False (faux). Cependant, si vous tentez de définir un attribut en lecture seule quelconque pour les objets File ou Folder, un message d'erreur s'affiche.

Vous devez déclarer explicitement les constantes que vous souhaitez utiliser avec les composants d'accès aux fichiers.

 
AvailableSpace (objet Drive)  
drvObj. AvailableSpace
 

Espace restant en octets sur le disque en cours. Cette valeur est inexacte pour les disques avec plus de 2 Go d'espace restant. Cette propriété est en lecture seule.

 
Paramètres

Aucun

 
Exemple
<%
' Dimension local variables. 
Dim fsoObject     ' FileSystemObject
Dim drvObject       ' Drive Object
Dim lngAvailBytes   ' Number of bytes available

' Instantiate the FileSystemObject variable.
Set fsoObject = Server.CreateObject( _
                "Scripting.FileSystemObject")
' Using the GetDrive method of fsoObject, initialize a 
' Drive object.
Set drvObject = fsoObject.GetDrive("\\PublicDocs")
' Retrieve the amount of space (in bytes) available 
' on the drive.
lngAvailBytes = drvObject.AvailableSpace
. . . [additional code]

%>
 
Remarques

Les valeurs des propriétés AvailableSpace et FreeSpace ne sont différentes que lorsque le disque prend en charge les quotas de disque. Dans les faits, ces deux propriétés sont interchangeables.

 
DateCreated (objets File et Folder)  
Obj.DateCreated
 

Valeur de date correspondant à la date du fichier ou du dossier créé. Cette valeur en lecture seule est définie par le système d'exploitation.

 
Paramètres

Aucun

 
Exemple
<%

' Dimension local variables. 
Dim fsoObject    ' FileSystemObject.
Dim fdrObject    ' Folder object.
Dim datCreated   ' Date variable.

' Instantiate the FileSystemObject variable.
Set fsoObject = Server.CreateObject( _
                "Scripting.FileSystemObject")
' Using the GetFolder method of fsoObject, initialize 
' a Folder object
Set fdrObject = fsoObject.GetFolder("c:\Docs")
' Retrieve the date the folder was created.
datCreated = fdrObject.DateCreated
. . . [additional code]

%>
 
Remarques

La valeur de cette propriété indique la date de création du fichier et non pas la date d'enregistrement sur le disque en cours.

 
Drive (objets File et Folder)  
Obj.Drive
 

Affiche un nom de disque auquel l'objet File ou Folder est associé. La propriété est définie sur lecture seule.

 
Paramètres

Aucun

 
Exemple
<%

' Dimension local variables. 
Dim fsoObject     ' FileSystemObject
Dim filObject     ' File Object
Dim objDrive      ' Drive name

' Instantiate the FileSystemObject variable.
Set fsoObject = Server.CreateObject( _
                "Scripting.FileSystemObject")
' Using the GetFile method of fsoObject, initialize 
' a File object.
Set filObject = fsoObject.GetFile("PublicDocs.txt")
' Retrieve the drive name with which the File object 
' is associated.
Set objDrive = filObject.Drive
' Note that this drive is actually the current drive 
' in this case.
. . . [additional code]

%>
 
Remarques

La propriété Drive peut représenter un disque physique ou local, un disque mappé ou un partage réseau.

Du fait que la propriété par défaut de l'objet Drive est Path, vous pouvez attribuer un nom de disque à une chaîne de la manière suivante :

strDrive = filObject.Drive

La version complète étant :

strDrive = filObject.Drive.Path

Or, pour manipuler l'objet Drive, vous devez utiliser l'instruction Set pour attribuer la référence à une variable objet. Exemple<:hs>:

Set objDrive = filObject.Drive
 
FileSystem (objet Drive)  
drvObj.FileSystem
 

Valeur de chaîne représentant le type de système de fichiers utilisé pour formater le disque en cours. Les types de système de fichiers reconnus sont CDFS, NTFS, FAT et FAT32. Cette propriété est en lecture seule.

 
Paramètres

Aucun

 
Exemple
<%

' Dimension local variables. 
Dim fsoObject     ' FileSystemObject
Dim drvObject       ' Drive Object
Dim strFileSys     ' File system of drive

' Instantiate the FileSystemObject variable.
Set fsoObject = Server.CreateObject( _
                "Scripting.FileSystemObject")
' Using the GetDrive method of fsoObject, initialize 
' a Drive object.
Set drvObject = fsoObject.GetDrive("\\PublicDocs")
' Retrieve the file system for the drive. This value 
' will contain one of the following strings: 
' NTFS, FAT, or CDFS. 
strFileSys = drvObject.FileSystem
. . . [additional code]

%>
 
Remarques

La valeur de la propriété FileSystem d'un objet Drive permettant de connaître la taille des clusters et les fonctionnalités de sécurité disponibles du disque en cours est fiable.

 
IsReady (objet Drive)  
drvObj.IsReady
 

Valeur booléenne indiquant si le disque en cours est en lecture seule ou en lecture/écriture. Cette propriété, par exemple, permet de déterminer si une disquette ou un CD est inséré dans un lecteur. Cette propriété est en lecture seule.

 
Paramètres

Aucun

 
Exemple
<%

' Dimension local variables. 
Dim fsoObject     ' FileSystemObject
Dim drvObject       ' Drive Object

' Instantiate the FileSystemObject variable.
Set fsoObject = Server.CreateObject(
                "Scripting.FileSystemObject")
' Using the GetDrive method of fsoObject, initialize a 
' Drive object.
Set drvObject = fsoObject.GetDrive("\\PublicDocs")
' Check to see if the drive is ready.
If drvObject.IsReady Then
   ' Drive is ready for read/write.
Else
   ' Drive is not ready.
End If
. . . [additional code]

%>
 
Remarques

Il est conseillé d'utiliser la propriété IsReady avant toute tentative d'accès au disque. Elle peut servir à déterminer le niveau de préparation des lecteurs de supports amovibles (lecteurs de disquettes et de CD-ROM) et fixes.

 
IsRootFolder (objet Folder)  
fdr.IsRootFolder
 

Valeur booléenne permettant de déterminer si le dossier en cours est le dossier racine. Cette propriété est en lecture seule.

 
Paramètres

Aucun

 
Exemple
<%

' Dimension local variables. 
Dim fsoObject     ' FileSystemObject
Dim fdrObject   ' Folder Object

' Instantiate the FileSystemObject variable.
Set fsoObject = Server.CreateObject( _
                "Scripting.FileSystemObject")
' Using the GetFolder method of fsoObject, initialize a 
' File object.
Set fdrObject = fsoObject.GetFolder("PublicDocs.txt")
' Determine whether the current folder is a root folder
' or if it is nested.
If fdrObject.IsRootFolder Then
   ' Folder is located directly off the drive letter 
   ' or share name.
Else
   ' The folder is nested within at least one other 
   ' folder.
End If
. . . [additional code]

%>
 
Remarques

La documentation Microsoft contient des instructions sur l'utilisation de cette propriété dans le but déterminer le nombre de niveaux auxquels le dossier est imbriqué. Par commodité, le code suivant démontre ce qui suit :

<%

' Dimension local variables. 
Dim fsoObject     ' FileSystemObject
Dim fdrObject   ' Folder Object
Dim intNestedLevel ' Level to which the folder is nested

' Instantiate the FileSystemObject variable.
Set fsoObject = Server.CreateObject( _
                "Scripting.FileSystemObject")
' Using the GetFolder method of fsoObject, initialize a 
' File object.
Set fdrObject = fsoObject.GetFolder("PublicDocs.txt")
' Determine whether the current folder is a root folder
' or if it is nested.
If fdrObject.IsRootFolder Then
   ' Folder is located directly off the drive letter or 
   ' share name.
Else
   ' For more on the ParentFolder property of the 
   ' Folder object, see the following.
   Do Until fdrObject.IsRootFolder
      Set fdrObject = fdrObject.ParentFolder
      intNestedLevel = intNestedLevel + 1
   Loop
End If
. . . [additional code]

%>
 
ParentFolder (objets File et Folder)  
Obj.ParentFolder
 

Renvoie un objet Folder représentant le dossier dans lequel se trouve le fichier ou le dossier. Cette propriété est en lecture seule.

 
Paramètres

Aucun

 
Exemple

Le code suivant montre comment utiliser la propriété ParentFolder utilisée avec un objet File, puis avec un objet Folder. Du fait que Name est la propriété par défaut d'un objet Folder, le code de la page ASP semble traiter la valeur renvoyée par la propriété ParentFolder comme une chaîne.

<%

' Dimension local variables. 
Dim fsoObject     ' FileSystemObject
Dim filObject     ' File Object
Dim fdrObject   ' Folder Object
Dim strFileParent    ' Parent folder of file object
Dim strFolderParent  ' Parent folder of folder object

' Instantiate the FileSystemObject variable.
Set fsoObject = Server.CreateObject( _
                "Scripting.FileSystemObject")
' Using the GetFile method of fsoObject, initialize the 
' File object.
Set filObject = fsoObject.GetFile("d:\docs\test.txt")

' Retrieve the name of the folder containing the file Test.TXT.
' In this example, the value of strFileParent is "docs".
strFileParent = filObject.ParentFolder
' Using the GetFolder method of fsoObject, initialize 
' the Folder object.
Set fdrObject = fsoObject.GetFolder("d:\mystuff\docs")

' Retrieve the name of the folder that contains the 
' folder "docs". In this example, the value of 
' strFileParent is "mystuff".
strFolderParent = fdrObject.ParentFolder
. . . [additional code]

%>
 
Close (objet TextStream)  
tsObj.Close
 

Ferme un fichier texte ouvert en tant qu'objet TextStream.

 
Paramètres

Aucun

 
Exemple
<%

' Dimension local variables. 
Dim fsoObject     ' FileSystemObject
Dim tsObject      ' TextStream Object

' Instantiate the FileSystemObject variable.
Set fsoObject = Server.CreateObject( _
                "Scripting.FileSystemObject")
' Using the OpenTextFile method of fsoObject, initialize 
' the File object.
Set tsObject = fsoObject.OpenTextFile( _
               "d:\docs\test.txt", ForReading, False)

' Read into the string the contents of the text file.
strContents = tsObject.ReadAll
' Close the open text file.
tsObject.Close
. . . [additional code]

%>
 
Remarques

Le nombre de fichiers que vous pouvez ouvrir dans votre application est limité (comme cela est le cas dans Visual Basic). Il est donc important de fermer tous les fichiers texte dès que vous n'en avez plus de besoin.

 
Copy (objets File et Folder)  
obj.Copy strDestination [, blnOverWrite]
 

Copie un fichier puis le colle à un autre endroit.

 
Paramètres
strDestination

Valeur de chaîne indiquant le chemin d'accès complet du fichier en cours que vous souhaitez copier.

blnOverWrite

Valeur booléenne indiquant si un fichier portant le même nom que celui copié va être écrasé. La valeur par défaut est True.

 
Exemple
<%

' Dimension local variables. 
Dim fsoObject     ' FileSystemObject
Dim filObject     ' File Object

' Instantiate the FileSystemObject variable.
Set fsoObject = Server.CreateObject( _
                "Scripting.FileSystemObject")
' Using the GetFile method of fsoObject, initialize 
' the File object.
Set filObject = fsoObject.GetFile("d:\docs\test.txt")

' Copy the file to a temporary directory.
filObject.Copy "e:\storage\temp\test_copy.txt", True
. . . [additional code]

%>
 
Remarques

La méthode Copy a exactement la même fonction que les méthodes CopyFile et CopyFolder de l'objet FileSystemObject. La seule différence importante est que les méthodes CopyFile et CopyFolder permettent de copier plusieurs fichiers ou dossiers à la fois.

 
CopyFolder (objet FileSystemObject)  
fsoObj.CopyFolder strSource, strDestination [, blnOverWrite]
 

Permet de copier un dossier et tout son contenu et de le coller à un autre endroit.

 
Paramètres
strSource

Valeur de chaîne indiquant le chemin d'accès complet du ou des dossiers que vous souhaitez copier. Le paramètre strSource accepte les caractères génériques.

strDestination

Valeur de chaîne indiquant le chemin d'accès complet du ou des dossiers que vous souhaitez copier désignés par strSource.

blnOverWrite

Valeur booléenne indiquant si un fichier portant le même nom que celui copié va être écrasé. La valeur par défaut est True.

 
Exemple
<%

' Dimension local variables. 
Dim fsoObject     ' FileSystemObject
' Instantiate the FileSystemObject variable.
Set fsoObject = Server.CreateObject( _
                "Scripting.FileSystemObject")
' Use the FileSystemObject object's CopyFolder method
' to copy the Temp directory and all its contents from
' the C drive to the D drive, overwriting if necessary.
fsoObject.CopyFolder "c:\temp", "d:\temp", True
. . . [additional code]

%>
 
Remarques

Si une erreur est déclenchée lors de l'appel de la méthode CopyFolder, celle-ci s'arrête immédiatement et n'annule aucune des actions déjà réalisées.

La méthode CopyFolder est aussi rapide que copier le dossier à l'aide de la ligne de commande.

 
CreateFolder (objet FileSystemObject)  
fsoObj.CreateFolder( strFolderName)
 

Crée un dossier à l'emplacement spécifié.

 
Paramètres
strFolderName

Valeur de chaîne indiquant le chemin d'accès physique complet du dossier que vous souhaitez créer.

 
Exemple
<%

' Dimension local variables. 
Dim fsoObject     ' FileSystemObject
' Instantiate the FileSystemObject variable.
Set fsoObject = Server.CreateObject( _
                "Scripting.FileSystemObject")
' Create a new directory.
fsoObject.CreateFolder("e:\storage\newdir")
. . . [additional code]

%>
 
Remarques

Si vous créez un dossier qui existe déjà, un message d'erreur s'affiche.

 
Delete (objets File et Folder)  
Obj.Delete blnForce
 

Supprime un fichier ou un dossier.

 
Paramètres
blnForce

Valeur booléenne indiquant si les fichiers ou les dossiers vont être supprimés, même si ces derniers sont en lecture seule.

 
Exemple
<%

' Dimension local variables. 
Dim fsoObject     ' FileSystemObject
Dim filObject     ' File Object

' Instantiate the FileSystemObject variable.
Set fsoObject = Server.CreateObject( _
                "Scripting.FileSystemObject")
' Using the GetFile method of fsoObject, initialize the 
' File object.
Set filObject = fsoObject.GetFile("d:\docs\test.txt")

' Delete the TEST.TXT file--even if the file is marked 
' as read-only.
filObject.Delete True
. . . [additional code]

%>
 
Remarques

La méthode Delete des objets File et Folder est fonctionnellement identique aux méthodes DeleteFile et DeleteFolder de l'objet FileSystemObject. Si vous utilisez la méthode Delete d'un objet Folder, ce dossier et tout son contenu sont supprimés. Vous n'êtes pas averti si vous supprimez un répertoire contenant des fichiers.

 
GetBaseName (objet FileSystemObject)  
fsoObj.GetBaseName( strPath)
 

Extrait le nom d'un fichier (sauf l'extension) à partir d'un chemin de fichier complet.

 
Paramètres
strPath

Chaîne indiquant le chemin d'accès complet d'un fichier donné dont vous souhaitez extraire seulement le nom.

 
Exemple
<%

' Dimension local variables. 
Dim fsoObject     ' FileSystemObject
' Instantiate the FileSystemObject variable.
Set fsoObject = Server.CreateObject( _
                "Scripting.FileSystemObject")
' Using the GetBaseName method, retrieve the base 
' names of several path strings. 
' This example returns "searchstart" as the base name.
Response.Write fsoObject.GetBaseName( _
               "/apps/search/searchstart.asp")
' This example returns "searchstart" as the base name.
Response.Write fsoObject.GetBaseName("/apps/search/")
' This example returns "searchstart" as the base name.
Response.Write fsoObject.GetBaseName("/apps/search")
' This example returns "nofile" as the base name--even
' though the nofile.txt file does not exist.
fsoObject.GetBaseName("/apps/search/nofile.txt")
. . . [additional code]

%>
 
Remarques

GetBaseName essaie de récupérer uniquement le nom du fichier à partir de la chaîne du chemin d'accès du fichier. Si le dernier élément de la chaîne du chemin d'accès est un dossier, le nom récupéré est celui du dossier, même si vous ajoutez une barre oblique de fermeture (/) ou une barre oblique inversée (\). La validité ou l'existence de la chaîne du chemin d'accès sur le serveur n'est pas vérifiée. La méthode se limite à analyser la chaîne du chemin d'accès. Cela explique pourquoi l'association de cette méthode à l'objet FileSystemObject est trompeuse, aucune manipulation m'ayant réellement lieu.

 
GetParentFolderName (objet FileSystemObject)  
fsoObj.GetFolderName ( strPath)
 

Détermine le nom du dernier dossier parent à partir d'une chaîne de chemin d'accès.

 
Paramètres
strPath

Chaîne indiquant le chemin d'accès complet d'un fichier ou d'un dossier donné dont vous souhaitez extraire le nom du dossier parent.

 
Exemple
<%

' Dimension local variables. 
Dim fsoObject     ' FileSystemObject
' Instantiate the FileSystemObject variable.
Set fsoObject = Server.CreateObject(
                "Scripting.FileSystemObject")
' Using the GetParentFolderName method, retrieve the 
' parent folder names of several path strings. 
' This example returns "search" as the parent folder
' name.
Response.Write fsoObject.GetParentFolderName( _
               "/apps/search/searchstart.asp")
' This example return "apps" as the parent folder name
Response.Write fsoObject.GetParentFolderName ("/apps/search/")
' This example also returns "apps" as the parent folder 
' name.
Response.Write fsoObject.GetParentFolderName ("/apps/search")
' This example returns "nofile" as the parent folder 
' name--even though nofile.txt does not exist.
Response.Write fsoObject.GetParentFolderName( _
               "/apps/search/nofile.txt")
. . . [additional code]

%>
 
Remarques

Comme avec la méthode GetBaseName de l'objet FileSystemObject, la méthode GetParentFolderName ne fait qu'analyser la chaîne du chemin d'accès. La validité ou l'existence de l'argument de la chaîne n'est pas vérifiée.

 
GetSpecialFolder (objet FileSystemObject)  
fsoObj.GetSpecialFolder (intSpecialFolderType)
 

Récupère le chemin d'accès physique complet d'un dossier spécial sur le serveur Web.

 
Paramètres
intSpecialFolderType

Nombre entier indiquant le type de dossier spécial dont vous souhaitez récupérer le chemin d'accès physique complet. Les valeurs de ce paramètre sont les suivantes :

Constante

Valeur

Description

WindowsFolder

0

Le dossier Windows ou WinNT dans lequel le système d'exploitation a été installé.

SystemFolder

1

Le dossier System dans lequel les bibliothèques et les pilotes d'appareils sont installés.

TemporaryFolder

2

Le dossier Temp comme il est déclaré dans les variables d'environnement.

 
Exemple
<%

' Dimension local variables. 
Dim fsoObject     ' FileSystemObject
' Declare file constants.
Const WindowsFolder   = 0
Const SystemFolder    = 1
Const TemporaryFolder = 2

' Instantiate the FileSystemObject variable.
Set fsoObject = Server.CreateObject( _
                "Scripting.FileSystemObject")
' Use GetSpecialFolder to retrieve the physical path
' for the Windows, System, and Temp directories. 
' This example returns something similar to "C:\WINNT". 
fsoObject.GetSpecialFolder(WindowsFolder)
' This example returns something similar to 
' "C:\WINNT\SYSTEM32". 
fsoObject.GetSpecialFolder(SystemFolder)

' This example returns something similar to 
' "C:\WINNT\TEMP" 
fsoObject.GetSpecialFolder(TemporaryFolder)
. . . [additional code]

%>
 
Remarques

Vous devez déclarer explicitement les constantes que vous souhaitez utiliser avec les composants d'accès aux fichiers.

 
MoveFolder (objet FileSystemObject)  
fsoObj.MoveFolder strSourcePath, strDestinationPath
 

Déplace un dossier et tout son contenu.

 
Paramètres
strSourcePath

Chaîne indiquant le chemin d'accès du ou des dossiers que vous souhaitez déplacer. Vous pouvez ajouter des caractères génériques dans l'argument strSourcePath, mais uniquement dans le dernier segment du chemin d'accès.

strDestinationPath

Chaîne indiquant l'emplacement (le chemin d'accès) où vous souhaitez déplacer les dossiers référencés dans le paramètre strSourcePath. Le paramètre strDestinationPath n'accepte pas les caractères génériques.

 
Exemple
<%

' Dimension local variables. 
Dim fsoObject     ' FileSystemObject
' Instantiate the FileSystemObject variable.
Set fsoObject = Server.CreateObject( _
                "Scripting.FileSystemObject")
' Using the MoveFolder method, move all the folders 
' under C:\APPS to the D: drive.
fsoObject.MoveFolder "C:\APPS\*.*", "D:\"
. . . [additional code]

%>
 
Remarques

Si le chemin d'accès vers lequel vous déplacez un dossier correspond à un nom de fichier, un message d'erreur s'affiche. Si, par contre, il correspond à un nom de dossier existant, un message d'erreur s'affiche sauf si l'argument source se termine par un caractère générique ou une barre oblique inversée (\). Si tel est le cas, le ou les dossiers source ainsi que tout le contenu sont déplacés vers le dossier de destination. Par exemple, le code suivant aboutit à une erreur :

<%
' Assume FileSystemObject object is instantiated
'already. Also assume that D:\ apps already exists.
fsoObject.MoveFolder "C:\apps", "d:\apps"
%>

Ce qui n'est pas le cas du code suivant :

<%
' Assume FileSystemObject object is instantiated
'already. Also assume that D:\ apps already exists.
fsoObject.MoveFolder "C:\apps\*.*", "d:\apps"
' This last line create an apps folder in the D:\apps 
' folder (making D:\apps\apps)
%>

Si le serveur Web rencontre une erreur lors de l'appel de la méthode MoveFolder, toutes les actions s'arrêtent sans annuler les actions précédentes. Par exemple, si vous déplacez une série de trois dossiers ainsi que tout le contenu et qu'une erreur se produit sur le troisième dossier, les deux premiers dossiers sont déplacés mais pas le troisième. Vous devez ajouter votre propre code pour vérifier les fichiers et les dossiers qui sont déplacés et ceux qui ne le sont pas.

Pour déplacer des dossiers d'un volume à un autre, vous devez vérifier si le système d'exploitation prend en charge cette fonction et que l'option de sécurité de l'utilisateur du serveur Web vous y autorise.

 
OpenAsTextStream (objet File)  
tsObject =filObj.OpenAsTextStream [ intAccessMode][, intFormat]
 

Ouvre et crée un objet TextStream, ce qui vous permet de lire ou modifier le fichier texte. La méthode renvoie un objet TextStream.

 
Paramètres
intAccessMode

Nombre entier indiquant le mode d'entrée et de sortie dans lequel vous souhaitez ouvrir le fichier texte. Les valeurs de ce paramètre sont les suivantes :

Constante

Valeur

Description

ForReading

1

Le fichier s'ouvre en lecture seule et ne peut être modifié par l'objet TextStream en cours.

ForWriting

2

Le fichier s'ouvre en lecture/écriture. Si le fichier existe déjà lorsque vous appelez la méthode OpenAsTextStream, le fichier d'origine est écrasé.

ForAppending

8

Le fichier s'ouvre dans lequel vous pouvez ajouter des informations. Vous pouvez seulement ajouter des caractères à la fin de ce fichier.

intFormat

Nombre entier indiquant le format du fichier à ouvrir en tant qu'objet TextStream. Vous devez considérer les valeurs possibles de ce paramètre comme une valeur unique à trois états. Le format du fichier est Unicode, ASCII, ou tout autre format utilisé par défaut sur le système. Les valeurs de ce paramètre sont les suivantes :

Constante

Valeur

Description

TristateUseDefault

-2

Le format de fichier est identique au format par défaut du serveur Web (Unicode ou ASCII).

TristateTrue

-1

Le format de fichier est Unicode.

TristateFalse

0

Le format de fichier est ASCII.

 
Exemple
<%

' Dimension local variables. 
Dim fsoObject     ' FileSystemObject
Dim filObject     ' File Object
Dim tsObject    ' TextStream object

' Declare File Access constants.
Const ForAppending = 8
Const TristateTrue = -1

' Instantiate the FileSystemObject variable.
Set fsoObject = Server.CreateObject( _
                "Scripting.FileSystemObject")
' Using the GetFile method of fsoObject, initialize the 
' File object. 
Set filObject = fsoObject.GetFile("d:\docs\test.txt")

' Use the OpenAsTextStream method to open the file for 
' appending and in Unicode format.
Set tsObject = filObject.OpenAsTextStream(ForAppending, TristateTrue)
%>
 
Remarques

La méthode OpenAsTextStream est presque équivalente à la méthode OpenTextFile de l'objet FileSystemObject. La seule différence est que la méthode OpenAsTextStream peut être également utilisée pour créer un fichier texte s'il n'en existe aucun.

Vous devez déclarer explicitement les constantes que vous souhaitez utiliser avec les composants d'accès aux fichiers.

 
ReadLine (objet TextStream)  
tsObj.ReadLine
 

La méthode ReadLine est identique à la méthode Read de l'objet TextStream, dans le sens où il vous permet de lire un fichier texte afin d'obtenir une variable de chaîne ou de comparer les résultats de la lecture à une autre entité. Cependant, contrairement à la méthode Read, qui utilise un argument pour déterminer le nombre de caractères à lire, la méthode ReadLine lit tous les caractères depuis la position du pointeur jusqu'au caractère suivant de la nouvelle ligne.

 
Paramètres

Aucun

 
Exemple
<%

' Dimension local variables. 
Dim fsoObject     ' FileSystemObject
Dim filObject     ' File Object
Dim tsObject    ' TextStream object
Dim strBuffer   ' Holding buffer

' Declare file access constants.
Const ForReading = 1
Const TristateFalse = 0

' Instantiate the FileSystemObject variable.
Set fsoObject = Server.CreateObject( _
                "Scripting.FileSystemObject")
' Using the GetFile method of fsoObject, initialize the 
' File object.
Set filObject = fsoObject.GetFile("d:\docs\test.txt")

' Use the OpenAsTextStream method to open the file for 
' reading and in ASCII format.
Set tsObject = filObject.OpenAsTextStream(ForReading, TristateFalse)
' Use the ReadLine method to read the next line of text
' from the text file into the strBuffer variable.
strBuffer = tsObject.ReadLine
%>
 
Remarques

Après avoir appelé la méthode ReadLine, la position actuelle du pointeur dans le fichier est celle du caractère placé immédiatement après le dernier caractère de nouvelle ligne ou à la fin du marqueur de fichier.

Vous devez déclarer explicitement les constantes que vous souhaitez utiliser avec les composants d'accès aux fichiers.

 
Write (objet TextStream)  
tsObj.Write(strWriteString)
 

Insère la chaîne spécifiée dans un fichier texte ouvert à la position actuelle du pointeur.

 
Paramètres
strWriteString

Chaîne représentant le texte que vous souhaitez insérer dans le fichier ouvert.

 
Exemple
<%

' Dimension local variables. 
Dim fsoObject     ' FileSystemObject
Dim filObject     ' File Object
Dim tsObject    ' TextStream object
Dim strEnding
' Declare file access constants.
Const ForAppending = 8
Const TristateFalse = 0

' Initialize string variable. This string will be 
' written to the end of the file opened next.
strEnding = "This is the end, my only friend, the end..."
' Instantiate the FileSystemObject variable.
Set fsoObject = Server.CreateObject( _
                "Scripting.FileSystemObject")
' Using the GetFile method of fsoObject, initialize the 
' File object.
Set filObject = fsoObject.GetFile("d:\docs\test.txt")

' Use the OpenAsTextStream method to open the file for 
' appending and in Unicode format.
Set tsObject = filObject.OpenAsTextStream(ForAppending, TristateFalse)
' Write a short string to the end of the opened file.
tsObject.Write strEnding
. . . [additional code]

%>
 
Remarques

La méthode Write n'insère aucun caractère au début ou à la fin de chaque chaîne écrite. C'est pourquoi, si vous utilisez la méthode Write pour ajouter un fichier, insérez tout caractère nécessaire (par exemple, un espace ou un caractère de nouvelle ligne) au début ou à la fin des chaînes que vous souhaitez insérer dans le fichier.

 
WriteLine (objet TextStream)  
tsObj.WriteLine([strWriteString])
 

Insère une valeur de chaîne dans un fichier ouvert à la position actuelle du pointeur dans le fichier. Cette méthode insère également un caractère de nouvelle ligne à la fin de chaque chaîne ajoutée. C'est la seule différence avec la méthode Write.

strWriteString

Chaîne représentant le texte que vous souhaitez insérer dans le fichier texte ouvert.

 
Exemple
<%

' Dimension local variables. 
Dim fsoObject     ' FileSystemObject
Dim filObject     ' File Object
Dim tsObject    ' TextStream object
Dim strEnding
' Declare file access constants.
Const ForAppending = 8
Const TristateFalse = 0

' Initialize a string variable that will be written to 
' the end of the file opened next.
strEnding = "This is the end, my only friend, the end..."
' Instantiate the FileSystemObject variable.
Set fsoObject = Server.CreateObject( _
                "Scripting.FileSystemObject")
' Using the GetFile method of fsoObject, initialize the 
' File object.
Set filObject = fsoObject.GetFile("d:\docs\test.txt")

' Use the OpenAsTextStream method to open the file for 
' appending and in Unicode format.
Set tsObject = filObject.OpenAsTextStream(ForAppending, TristateFalse)
' Write a short string plus a newline character to the
' end of the opened file.
tsObject.WriteLine strEnding
. . . [additional code]

%>
 
Remarques

Après avoir appelé la méthode WriteLine, le pointeur de fichier désigne le caractère situé immédiatement après le caractère de nouvelle ligne ajouté au fichier.