|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Propriétés de la collection Drives |
|
| Propriété | Description |
Count |
Donne le nombre de disques disponibles. |
Item |
Renvoie l'un des éléments de la
collection, donc l'un des disques du système. L'élément renvoyé est un
objet Drive qui donne toutes les propriétés du disque concerné. |
Lister les disques à l'aide de la collection DrivesL'exemple ci-dessous illustre les 2 propriétés de la collection
Drivesen affichant, dans la fenêtre , le nombre de disques ainsi que quelques informations sur le disque C.
Pour lancer le programme :
- Recopiez le code ci-dessous dans un module standard Access.
- Faites apparaître la fenêtre de Visual Basic Editor (Ctrl + G).
- Placez le curseur au milieu du listing.
Cliquez sur l'icône Exécuter Sub/UserForm.
- Contemplez béatement le résultat dans la fenêtre :o)
- Reprenez vos esprits et continuez la lecture de ce qui suit...
' --- ' DRIVES COLLECTION ' --- ' (c) 2003, Hervé Inisan - www.self-access.com ' ' La fonction DriveList() illustre les propriétés de ' la collection Drives. ' Les résultats sont affichés dans la fenêtre Exécution (Ctrl+G).Function DriveList()Dim fso As Scripting.FileSystemObject' Créer une instance du FSOSet fso=New Scripting.FileSystemObject' Afficher le nombre de disquesDebug."NOMBRE DE DISQUES: "&fso.Drives.Count' Afficher quelques infos sur le disque CDebug."TAILLE DU DISQUE C: "&fso.Drives.Item("C").TotalSize Debug."NUMERO DE SERIE DU DISQUE C: "&fso.Drives("C").SerialNumber' Libérer les objetsSet fso=Nothing End FunctionRésultat :
Détail du listing :
Set fso = New Scripting.FileSystemObject Cette ligne démarre toute utilisation du Scripting Runtime. Il s'agit de créer une instance de l'objet FileSystemObject, à partir de laquelle toutes sortes d'opérations pourront être effectuées sur le système de fichiers.Debug.Print "NOMBRE DE DISQUES: " & fso.Drives.Count La collection Drivesdépend de l'objetFileSystemObject, représenté ici par la variablefso. Sa propriétéCountdonne le nombre de disques total.Debug.Print "TAILLE DU DISQUE C: " & fso.Drives.Item("C").TotalSize
Debug.Print "NUMERO DE SERIE DU DISQUE C: " & fso.Drives("C").SerialNumberCes 2 lignes illustrent 2 méthodes pour accéder à un disque précis.
- La première méthode utilise explicitement la propriété
Itemde la collectionDrives.Item()doit recevoir entre parenthèses la lettre du disque concerné.- La seconde méthode utilise le fait que la propriété
Itemest la propriété par défaut de la collectionDrives: vous vérifiez ceci par le point bleu qui figure en regard de la propriétéItemdans l'Explorateur d'objets.Itemétant propriété par défaut, il n'est pas nécessaire de la mentionner.
Drives.Item("C")ouDrives("C")voirefso.GetDrive("C")sont donc équivalents et donnent accès à un objetDrivequi décrit un disque. En guise d'illustration, 2 caractéristiques du disque C sont affichées ici : la taille totale (TotalSize) et le numéro de série (SerialNumber). Vous trouverez plus loin la liste des propriétés de l'objetDrive.Dans certains cas, il peut être utile de vérifier si un disque existe avant d'y faire référence. La méthode
FileSystemObject.DriveExists()permet de le faire. Par exemple,fso.DriveExists("G")renvoieTruesi le lecteur G existe,Falsesinon.Comme toujours en VBA, les variables objet sont libérées en fin de listing par un
Set objet = Nothing.
L'objet DriveL'objet
Drivedécrit un disque à l'aide d'une douzaine de propriétés.
La majorité de ces propriétés est accessible en lecture seule et ne peut donc pas être modifiée en Visual Basic.
Ce serait pourtant sympa de pouvoir écrire :fso.Drives("C").TotalSize = 1024^10:o).
Propriétés de l'objet Drive
Propriété Description Exemple DriveLetterDonne la lettre du lecteur. A, C, D... DriveTypeDonne le type de disque, sous forme numérique (1=Disque amovible, 2=Disque fixe, etc.). Voir plus bas pour quelques compléments. IsReadyIndique si le disque est prêt et donc accessible. Le lecteur de disquettes est considéré comme prêt si une disquette est placée à l'intérieur. De même pour le lecteur de CD-Rom. SerialNumberDonne le numéro de série du disque. VolumeNameIndique le nom du disque. FileSystemIndique le système de fichiers installé sur le disque. FAT32 sur Windows 98, NTFS sur Windows NT/2000/XP. PathDonne le chemin d'accès au disque. C:, D:... RootFolderIndique le nom du dossier racine sur le disque. C:\, D:\... ShareNameDonne le nom de partage du disque. AvailableSpaceDonne l'espace disque disponible, en octets. FreeSpaceDonne l'espace disque disponible, en octets. Les propriétés
AvailableSpaceetFreeSpacedonnent le même résultat, à part éventuellement pour des ordinateurs gérant des systèmes de quotas.TotalSizeIndique la taille totale du disque, en octets.
Décrire les disques à l'aide de l'objet DriveL'exemple ci-dessous parcourt toute la collection
Drivesen affichant, dans la fenêtre , le descriptif de chaque disque trouvé.' --- ' DRIVES COLLECTION / DRIVE OBJECT ' --- ' (c) 2003, Hervé Inisan - www.self-access.com ' ' La fonction DriveInfo() utilise la collection Drives et ' l'objet Drive pour énumérer tous les disques du système, ' ainsi que leurs caractéristiques. ' Les résultats sont affichés dans la fenêtre Exécution (Ctrl+G).Function DriveInfo()Dim fso As Scripting.FileSystemObject Dim drv As Scripting.Drive' Créer une instance du FSOSet fso=New Scripting.FileSystemObject' Liste de tous les disquesOn Error Resume Next Debug."--- INFOS DISQUES"Debug."NOMBRE DE DISQUES: "&fso.Drives.Count Debug.Print For Each drv In fso.Drives Debug."--- DISQUE"Debug."LETTRE DU DISQUE: ",drv.DriveLetter Debug."TYPE DE DISQUE: ",drv.DriveType&" - "&DriveType(drv.DriveType)Debug."DISQUE PRET: ", ,drv.IsReady If drv.IsReady Then Debug."NUMERO DE SERIE: ",drv.SerialNumber Debug."NOM DU DISQUE: ",drv.VolumeName Debug."SYSTEME DE FICHIER: ",drv.FileSystem Debug."CHEMIN: ", ,drv.Path Debug."DOSSIER RACINE: ",drv.RootFolder.Path Debug."PARTAGE: ",drv.ShareName Debug."ESPACE TOTAL: ",drv.TotalSize Debug."ESPACE LIBRE: ",drv.FreeSpace Debug."ESPACE DISPONIBLE: ",drv.AvailableSpace End If Debug.Print Next' Libérer les objetsSet fso=Nothing End Function' --- ' DRIVETYPECONST ' --- ' La fonction DriveType() affiche en clair les types de disques.Function DriveType(ByVal intDriveType As Scripting.DriveTypeConst)Dim strType As String Select Case intDriveType Case UnknownType:strType="Inconnu"Case Removable:strType="Disque amovible"Case Fixed:strType="Disque fixe"Case RamDisk:strType="RamDisk"Case CDRom:strType="CD-Rom"End Select DriveType=strType End FunctionRésultat :
Détail du listing :
For Each drv in fso.Drives
...
NextLa collection Drivesdonne accès à x disques. Nous utilisons donc une boucleFor Each/Nextpour parcourir ces disques. A chaque passage dans la boucle, la variabledrv(de typeDrive) désigne l'un des disques.Pour obtenir la description du disque C uniquement, vous pouvez bien sûr remplacer la boucle
For Each/Nextpar l'instruction :Set drv = fso.Drives("C")Function DriveType(...)
...
End FunctionLe type de disque (amovible, fixe, CD-Rom, etc.) est donné par la propriété Drive.DriveType, qui est une valeur numérique de 0 à 5 représentée par l'énumérationDriveTypeConst(que vous trouvez également dans l'Explorateur d'objets).La fonction
DriveType()se charge simplement d'afficher le type de disque en toutes lettres (un gadget cosmétique, donc !).
Renommer un disque à l'aide de l'objet DriveL'exemple ci-dessous fait appel à la propriété
Drive.VolumeNamepour modifier le nom du disque C.' --- ' DRIVE.VOLUMENAME ' --- ' (c) 2003, Hervé Inisan - www.self-access.com ' ' La fonction ChangeVolumeName() renomme le disque C. ' Vous pouvez l'améliorer en paramétrant le choix du disque ' et le nom à attribuer :-)Function ChangeVolumeName()Dim fso As Scripting.FileSystemObject Dim drv As Scripting.Drive' Créer une instance du FSO et une instance du disque CSet fso=New Scripting.FileSystemObject Set drv=fso.Drives("C")' Renommer le disque Cdrv.VolumeName="SELFACCESS"' Libérer les objetsSet drv=Nothing Set fso=Nothing End Function
| << 2. Modèle objet Scripting Runtime | [ Sommaire ] | 4. Manipulation des dossiers (Folders) >> |
| Cette section vous intéresse ? Abonnez-vous ! |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
|
Notions de base Jargon Access :o) Syntaxe SQL Programmation ASP Scripting Runtime Le Grenier [FAQ Access] Les tutoriaux Self-Access Les Assistants Access Les livres sur Access ! |
|
Forums Access Abonnement gratuit Télécharger... |
|
Le saviez-vous ? Une base contient au maximum 32768 objets. De quoi voir venir ! A demain pour une nouvelle astuce ! |