Overblog Suivre ce blog
Editer l'article Administration Créer mon blog
6 septembre 2010 1 06 /09 /septembre /2010 16:14

Microsoft

 

Dans les développements, nous avons parfois besoin de connaitre certaines propriétés des fichiers. En VBS, c'est relativement simple. Mais en VB et VBA, on peut avoir du mal à trouver les fonctions qui fonctionnent correctement.

Voici les 2 méthodes que j'utilise. L'avantage de ces méthodes est que je fais appel à des bibliothèques standard de Windows. Ca c'est cool 

 

Méthode 1 :

La bibliothèque "Microsoft Scriping Runtime" permet de récupérer les propriétés d'un fichier, principalement les informations qui apparaissent dans l'onglet "Général".

Le code :

Sub Test()

proprietesFichier_getFile "C:\leClasseur.xls"

End Sub

Sub proprietesFichier_getFile(Fichier As String)

'
'Nécessite d'activer la référence Microsoft Scripting Runtime
'
Dim Cible As Scripting.FileSystemObject
Dim Valeur As Scripting.File
Dim Resultat As String
Set Cible = CreateObject("Scripting.fileSystemObject")
Set Valeur = Cible.GetFile(Fichier)
Resultat = "Chemin et nom complet : " & Cible.GetAbsolutePathName(Valeur) & Chr(10) & Chr(10) & _
"Chemin : " & Cible.GetParentFolderName(Valeur) & Chr(10) & Chr(10) & _
"Nom fichier : " & Cible.GetFileName(Valeur) & Chr(10) & Chr(10) & _
"Nom fichier sans extension : " & Cible.GetBaseName(Valeur) & Chr(10) & Chr(10) & _
"Extension fichier : " & Cible.GetExtensionName(Valeur) & Chr(10) & Chr(10) & _
"Chemin : " & Valeur.ParentFolder & Chr(10) & Chr(10) & _
"Chemin court : " & Valeur.shortpath & Chr(10) & Chr(10) & _
"Nom court : " & Valeur.ShortName & Chr(10) & Chr(10) & _
"Date creation : " & Valeur.dateCreated & Chr(10) & Chr(10) & _
"Derniere modification : " & Valeur.dateLastModified & Chr(10) & Chr(10) & _
"Taille fichier : " & Valeur.Size & " octets" & Chr(10) & Chr(10) & _
"Type fichier : " & Valeur.Type
MsgBox Resultat

End Sub

 

Méthode 2 :

Une autre méthode consiste à interroger les composants WMI pour avoir les informations. J'aime moins cette méthode car elle est plus lente.

Le code :

Sub Test()

Dim sFich As String
sFich = "C:\leClasseur.xls"
Proprietes_CIM_Datafile sFich

End Sub

Sub Proprietes_CIM_Datafile(Fichier As String)

Dim strComputer As String
Dim objWMIService As Object, colFiles As Object, objFile As Object
strComputer = "."
Fichier = Replace(Fichier, "\", "\\")
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colFiles = objWMIService.ExecQuery _
("Select * from CIM_Datafile Where name = '" & Fichier & "'")
For Each objFile In colFiles
Debug.Print "Archive: " & objFile.Archive
Debug.Print "Description: " & objFile.Caption
Debug.Print "Statut: " & objFile.Status
'Valeurs possibles:
'OK , Error , Degraded , Unknown , Pred Fail , Starting , Stopping , Service
Debug.Print "Fichier système: " & objFile.System
Debug.Print "Compression: " & objFile.Compressed
Debug.Print "Methode de Compression: " & objFile.CompressionMethod
Debug.Print "Date de creation: " & objFile.CreationDate
Debug.Print "Lecteur: " & objFile.Drive
Debug.Print "Chemin d'accès: " & objFile.EightDotThreeFileName
Debug.Print "Cryptage: " & objFile.Encrypted
Debug.Print "Méthode de cryptage: " & objFile.EncryptionMethod
Debug.Print "Extension: " & objFile.Extension
Debug.Print "Nom du fichier: " & objFile.FileName
Debug.Print "Taille du fichier: " & objFile.FileSize & " octets"
Debug.Print "Type du fichier: " & objFile.FileType
Debug.Print "Système du fichier: " & objFile.FSName
Debug.Print "Fichier caché: " & objFile.Hidden
Debug.Print "Dernier accès: " & objFile.LastAccessed
Debug.Print "Derniere modification: " & objFile.LastModified
Debug.Print "Chemin complet du fichier: " & objFile.Name
Debug.Print "Répertoire du fichier: " & objFile.path
Debug.Print "Lisible: " & objFile.Readable
Debug.Print "Version: " & objFile.Version
Debug.Print "Modifiable: " & objFile.Writeable
Next

End Sub

 

 

Il ne reste plus qu'a choisir le code qui vous convient le mieux !

Partager cet article

Repost 0
Published by Lucky le Koala, le bien-heureux - dans Technique
commenter cet article

commentaires

Présentation

  • : Le blog de Lucky le Koala
  • Le blog de Lucky le Koala
  • : Un peu de tout mais toujours en ralant !
  • Contact

Catégories