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 ( 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 | |
|
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ù :
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 |
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 |
|
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 |
|
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 :
|
|||||||||||||||||||||||||||||||
Paramètres | |||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||
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 |
|||||||||||||||||||||||||||||||
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 |
|
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 |
|
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. |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 | |
|
|
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 |
|
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 | |
|
|
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 |
|
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 | |
|
|
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") |
|
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 | |
|
|
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 |
|
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 | |
|
|
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") |
|
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 | |
|
|
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") |
|
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 | |||||||||||||
|
|||||||||||||
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) |
|||||||||||||
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 | |
|
|
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:\" |
|
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 | |||||||||||||||||||||||||
|
|||||||||||||||||||||||||
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 | |
|
|
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 |
|
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.
|
|
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 |
|
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. |
|