Tutoriels Trucsweb
          

 

Niveau : INTERMÉDIAIRE (Consulté 61,910 fois)
Compatibilité : IIS 4

  Ajouter aux favoris  Envoyer à un ami  Version imprimable

Introduction à Scripting.FileSystemObject

Vérifier si un répertoire/fichier existe et les propriétés

   par Django (Oznog) Blais, Trucsweb (22 Janvier 2001)


Manipuler des fichiers texte peut être très pratique. Un fichier texte complète à merveille une base de données. Par exemple, tous mes tutoriels sont en fichier texte et une clé dans ma base de données fait la relation à chaque fichier texte. L’usage d’un fichier texte peut, selon le cas être la meilleure façon de gérer des données, de plus un fichier texte est portable ce qui permet à un serveur d’instant de récupérer l’information sans un accès spécifique. Ce tutoriel de base vous indiquera comment obtenir de l’information sur vos fichiers et vos répertoires.

Avant toute chose vous devez déterminer si vos fichiers texte sont privés ou publics. Un fichier texte stocké dans votre répertoire Web, au même titre que vos pages HTML, peut être vu par n’importe qui. Par contre vous pouvez créer un répertoire sous la racine de votre répertoire Web pour limiter l’accès à votre fichier texte. Seuls votre serveur, et les scripts qui roulent sur le serveur, pourront avoir accès à votre fichier. C’est d’ailleurs la meilleure façon de procéder, notamment avec une base de données.

Bien que vous pouvez manipuler vos fichiers texte à l’aide de l’objet « Scripting.FileSystemObject », vous pouvez aussi obtenir des informations sur tous types de fichiers ou même sur les répertoires et sous répertoires. Pour ce faire vous devez déclarer votre objet :

set fs = CreateObject("Scripting.FileSystemObject")
' Traitement
set fs = nothing

Vérifier si un fichier ou un répertoire existe.
Il existe deux méthodes soit : FileExists et FolderExists.

Dim sf, nFile, nRep

set fs = CreateObject("Scripting.FileSystemObject")
nFile = Server.MapPath(".") & "\" & "fichier.ext"
if  fs.FileExists(nFile) then
   ' le fichier existe
else
   ' le fichier n'existe pas
end if

nRep = Server.MapPath(".") & "\" & "repertoire"
if  fs.FolderExists(nRep) then
   ' le répertoire existe
else
   ' le répertoire n'existe pas
end if
set fs = nothing

Note : Server.MapPath(".") retourne le chemin d'accès ou " path " du fichier asp exécuté, "." indique le répertoire courant mais vous pouvez spécifier un sous répertoire, "sous-rep/sous-rep"

Les méthodes

Une fois le fichier ou le répertoire identifié vous pouvez les manipuler à l'aide des méthodes suivantes : CopyFile, CopyFolder, DeleteFile, DeleteFolder, MoveFile, MoveFolder mais ce qui nous intéresse ici c'est les méthodes GetFileName, GetFile et GetFolder.


" GetFileName " retourne le nom du fichier.

Ex : fs.GetFileName(nFile)


" GetFile " retourne les informations sur un fichier

Ex :
set fs = CreateObject("Scripting.FileSystemObject")
nFile = Server.MapPath(".") & "\" & "fichier.ext"
if  fs.FileExists(nFile) then
   set MonFichier = fs.GetFile(nFile)
   ' afficher les informations à l'aide des propriétés
   ' voir plus bas.
 set MonFichier = nothing
else
   ' le fichier n'existe pas
end if
set fs = nothing

Il ne reste plus qu'à afficher les informations à l'aide des propriétés.

response.write "Nom: " & MonFichier.Name
response.write "Poid (bytes): " & MonFichier.Size
response.write "Type: " & MonFichier.Type
response.write "Nom (en format 8.3): " & MonFichier.ShortName
response.write "Lecteur: " & MonFichier.Drive
response.write "Répertoire parent: " & MonFichier.ParentFolder
response.write "Chemin d'accès: " & MonFichier.Path
response.write "Date de création: " & MonFichier.DateCreated
response.write "Date du dernier accès: " & MonFichier.DateLastAccessed
response.write "Date de la dernière modification: " & MonFichier.DateLastModified


La propriété " Attributes " retourne quant à elle un numéro
response.write "Attributes: " & MonFichier.Attributes

sp
Constante Valeur Description
Normal 0 Fichier normal
ReadOnly 1 Fichier en lecture seule
Hidden 2 Fichier caché
System 4 Fichier système
Volume 8 Le nom " label " du lecteur
Directory 16 Répertoire
Archive 32 Fichier archive
Alias 64 Raccourci
Compressed 128 Fichier compressé

Noter que vous pouvez changer le nom d'un fichier en modifiant la propriété " name " MonFichier.Name = nouveau_nom


" GetFolder " retourne les informations sur un répertoire

Ex :
set fs = CreateObject("Scripting.FileSystemObject")
nRep = Server.MapPath(".") & "\" & "repertoire"
if  fs.FolderExists(nep) then
   set MonRep = fs. GetFolder(nRep)
   ' afficher les informations à l'aide des propriétés
   ' voir plus bas.
   set MonRep = nothing
else
   ' le fichier n'existe pas
end if
set fs = nothing

Il ne reste plus qu'à afficher les informations à l'aide des propriétés.

response.write "Attributs: " & MonRep.Attributes
response.write "Nom: " & MonRep.Name
response.write "Poid du répertoire (bytes): " & MonRep.Size
response.write "Le répertoire parent: " & MonRep.ParentFolder
response.write "Fichier racine ou " root ": "
if MonRep.IsRootFolder then
  response.write "Oui"
else
  response.write "Non"
end if
response.write "Chemin d'accès: " & MonRep.Path
response.write "Nom en format (8.3): " & MonRep.ShortName
response.write "Date de création: " & MonRep.DateCreated
response.write "Date du dernier accès: " & MonRep.DateLastAccessed
response.write "Date de la dernière modification: " & MonRep.DateLastModified

Liste ou " collection " des fichiers et des répertoires à l'aide des propriétés SubFolder et files.
Pour obtenir la liste de tous les fichiers vous devez créer une " collection "

Ex :
set fs = CreateObject("Scripting.FileSystemObject")
nRep = Server.MapPath(".") & "\" & "Répertoire"
set MonRep = fs.GetFolder(nRep)
set ColFiles = MonRep.Files
for each folderItem in ColFiles
    response.write "Fichier: " & folderItem.path
next
set ColFiles = nothing
set MonRep = nothing
set fs = nothing

Pour obtenir la liste de tous les répertoires vous devez créer une " collection "

Ex :
set fs = CreateObject("Scripting.FileSystemObject")
nRep = Server.MapPath(".") & "\" & "repertoire"
set MonRep = fs.GetFolder(nRep)
set ColRep = MonRep.SubFolders
for each folderItem in ColRep
    response.write "Répertoire: " & folderItem.path
next
set ColRep = nothing
set MonRep = nothing
set fs = nothing

Note : vous pouvez créer un sous-répertoire à l'aide de la méthode AddFolders Ex : MonRep.AddFolders nom_du_repertoire

Code complet pour obtenir la hiérarchie d'un répertoire avec ses répertoires et les fichiers de chaque répertoire. Avec extraction du "path" lors de l'affichage.

Ex :
set fs = CreateObject("Scripting.FileSystemObject")
nRep = "Répertoire Racine (Roots)"
set MonRep = fs.GetFolder(nRep)
set ColRep = MonRep.SubFolders
for each folderItem in ColRep
    Epure = Split(folderItem.path, nRep, -1, 1)
    Response.Write "Répertoire: " & Epure(1) & "<br>"
    set MesFichiers = fs.GetFolder(folderItem.path)
    set ColFiles = MesFichiers.Files
    for each FilesItem in ColFiles
        Epure = Split(FilesItem.path, folderItem.path, -1, 1)
        Response.Write "- Fichier: " & Epure(1) & "<br>"
    next
next
set MesFichiers = nothing
set ColFiles = nothing
set ColRep = nothing
set MonRep = nothing
set fs = nothing

Conclusion
Vous pouvez obtenir pratiquement toute l'information disponible sur vos répertoires et fichiers. Les exemples sont complets, ajouter & "
" au bout de chaque response.write et vous aurez un rapport complet. Il reste maintenant la manipulation des fichiers à l'aide des méthodes " Copy, move, delete " et surtout la manipulation des fichiers texte à l'aide de la méthode OpenAsTextStream que nous verrons dans un autre tutoriel.

 Début de la page


TrucswebTrucsweb


Fil d'info Trucsweb


 
sp

 
sp
 S U I T E   D U   S U J E T 
sp
Trier les fichiers dans un répertoire par date : Pour créer une liste de liens aux fichiers

Rechercher une chaîne de caractère dans un fichier : Et tous les fichiers du répertoire

Hébergement de qualité!

partenaire
Rechercher un tutoriel!
 
recherche avancée
Abonnez-vous!

 

Save the Net

 
sp
 C O M M A N D I T E S 
sp






 
sp
 T U T O R I E L S 
sp
· ASP / VBscript
· C/C++
· CSS
· DHTML
· CGI / Perl
· HTML
· Java/JSP
· Javascript
· PHP
· SSI
· WAP/WML
· XML/XSL
· Infographie
· Flash et Shockwave
· Audiovisuel
· Images gratuites
· Hébergement
· Analyses de logiciels
· Internet et Protocoles
· Veille intégrée
· Référencement
· Sécurité
· Outils gratuits
 
sp
 F O R U M S 
sp
· Forum Javascript
· Forum HTML/CSS
· Forum ASP/VBScript
· Forum Flash
· Tous les forums
 
sp
 S E R V I C E S 
sp
Generateur Trucsweb
· Générateur
· Répertoire
· Logithèque
· Glossaire
· Forum
· Nouveautés Dev Zone
· Ajouter un site
· Ajouter un logiciel
· Ajouter un tutoriel
· Fil d'info sur votre site
· Tester votre site
 
sp
 A P P L I C A T I O N S 
sp
· twCompteur 1.0 Nouveau
· twCalende 1.0 Nouveau
· twLiMenu 1.0 Nouveau
· twValide 2.2 sp
· twAliste 1.0 sp
· twASPDate 2.0 sp
· twASPLivre 1.0 sp
 
sp
 R É F É R E N C E S 
sp
· W3C HTML 4.0
· W3C XHTML 1.0
· Web Design Group
· W3C SMIL 2.0
· W3C XML 1.0
· XML Cover Pages
· W3C CSS LEVEL 2
· Netscape Javascript 1.5
· Netscape Javascript 1.4
· Netscape Javascript 1.3
· Netscape DHTML
· Gecko DOM ref.
· IE DHTML
· VBScript Language Ref.
· JScript Language Ref.
· ASP Object Quick Ref.
· ADO API Reference
· Microsoft IIS5
· MSDN Library
· RFC Editor Site
· HTML 4.0 code de caractères
· Unicode fonts
· Manuel PHP
· Documentation Perl
· Perl 5 Reference Guide
· Flash actionscript FAST
· ActionScript dictionary
· MySQL Manual
· SQL Pro (F. Brouard)
· Java Language Spec.
· Java 2 SDK Doc. V1.3.1
· JavaServer Pages Ref.
· C/C++ Language Ref.
· Python Library Reference
· Les Navigateurs
· Terminologie d'Internet
· Traduction
· Traduction systran
· Traduction d'interface client
· Extensions de fichiers
· Virus Wildlist
· Virus Alerts
 
sp
 D O M A I N E S 
sp
iWeb

iWeb
 
sp
 C O P Y R I G H T  
sp

 

accueil | tutoriels | logithèque | répertoire | forum



© 1997-2006
Django (Oznog) Blais
Rivière-du-Loup, Québec
Ajouter à votre Sidebar  RSS 1.0
 
Conception Oznog co. Multimédia


Hit-Parade    Tout navigateurs   

33 visiteurs