1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
|
Option Explicit
'
'
'creez une Form
'Placez y une ListView et une ImageList
'
'dans les propriétés de l'ImageList:
'Personnalisé
'onglet "Général"
'Sélectionnez 16x16
'Cliquez sur OK pour valider
'
'
'*******************************
'Necessite d'activer la reference Standard OLE Types
'******************************
'
'
'Choisissez un repertoire dans la boite de dialogue:
'la procedure va ensuite lister les fichiers de ce repertoire
'recupere l'icone de l'executable qui ouvre chaque fichier
'affiche quelques infos sur ces fichiers
Public Chemin As String
Private Sub Form_Load()
Dim objShell As Object, objFolder As Object
Dim x As Integer, nbFichiers As Integer, SecuriteSlash As Integer
Dim Tableau() As String
Dim Direction As String, Executable As String
'***************************************
'choisir un repertoire cible
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire", &H1&)
On Error Resume Next
Chemin = objFolder.ParentFolder.ParseName(objFolder.Title).Path
If objFolder.Title = "" Then Chemin = ""
SecuriteSlash = InStr(objFolder.Title, ":")
If SecuriteSlash > 0 Then Chemin = _
Mid(objFolder.Title, SecuriteSlash - 1, 2) & ""
If Chemin = "" Then Exit Sub
'**********************************
'lister les fichiers du repertoire
Direction = Dir(Chemin & "\*.*")
Do While Len(Direction) > 0
nbFichiers = nbFichiers + 1
ReDim Preserve Tableau(1 To nbFichiers)
Tableau(nbFichiers) = Direction
Direction = Dir()
Loop
'************************************
ImageList1.ListImages.Clear
If nbFichiers > 0 Then
For x = 1 To nbFichiers
'cherche l'executable asocié au fichier
Executable = FindExecutable(Chemin & "\" & Tableau(x))
'recupere le 1er icone
ImageList1.ListImages.Add , "A" & x, GetIconFromFile(Executable, 0, False)
Next x
ListView1.SmallIcons = ImageList1
With ListView1
With .ColumnHeaders
.Clear
.Add , , "Nom fichier", 5000 ' diviser valeur par 10 pour utilisation en VBA
.Add , , "Taille fichier", 1500 ' diviser valeur par 10 pour utilisation VBA
.Add , , "Date derniere modification", 1500 ' diviser valeur par 10 pour utilisation VBA
End With
For x = 1 To nbFichiers
.ListItems.Add , , Tableau(x)
.ListItems(x).ListSubItems.Add , , _
FileLen(Chemin & "\" & Tableau(x)) & " octets"
.ListItems(x).ListSubItems.Add , , _
Format(FileDateTime(Chemin & "\" & Tableau(x)), "DD/MM/YYYY")
.ListItems(x).SmallIcon = "A" & x
Next
End With
End If
ListView1.View = 3
End Sub |
Partager