[vbscript] liste des fichiers, d'un répertoire, triés par date de modification (du + récent au + ancien)

Contenu du snippet

Ce script (VBS) a pour but d'afficher, dans une MsgBox, la liste des fichiers
d'un répertoire, triée par date de modification (du + récent au + ancien)

Translation de VB6 en VBS du code (réponse) proposé par "michelxld" (forum VBFrance)
http://www.vbfrance.com/infomsg/OUVERTURE-FICHIER-RECENT-2_720974.aspx (le 22/04/2006 06:19:25)
Un grand MERCI à "rvblog" sans lequel ce script (version VBS) ne serait pas fonctionnel !!!"

jean-marc

Source / Exemple :


Option Explicit

Const PathMDB   = "D:\Mes_scripts_VBFrance" 

MsgBox TriRepertoire,,"Enumération " & PathMDB
'---lister les fichiers du répertoire ---
Function TriRepertoire()
Dim fso, fichier, fileItem
Dim i, imax, z, valeur, cible, liste
Set fso = CreateObject("Scripting.FileSystemObject")

imax = 0
'début de l'énumération
For Each fichier In fso.GetFolder(PathMDB).Files
    Set fileItem = fso.GetFile(fichier)
    
    imax = imax + 1
    ReDim Preserve Tableau(2, imax)
    Tableau(1, imax) = Fichier.Name
    Tableau(2, imax) = FileItem.DateLastModified

    '---trier les fichiers par ordre décroissant de création ---
    Do
    Valeur = 0
    For i = 1 To imax - 1
    If CDate(Tableau(2, i)) < CDate(Tableau(2, i + 1)) Then
       For z = 1 To 2
           Cible = Tableau(z, i)
           Tableau(z, i) = Tableau(z, i + 1)
           Tableau(z, i + 1) = Cible
       Next
       Valeur = 1
    End If
    Next 
    Loop While Valeur = 1
    Set fileItem = nothing
Next

'Affichage du résultat classé
For i = 1 To imax
    liste = liste &vbTab& i &vbTab& Tableau(1, i) &Space(2)&vbTab&vbTab& Tableau(2, i) &vbCr
    'MsgBox liste,,i & " / " & imax &Space(3)& "Liste du répertoire"&Space(3)& PathMDB 
    If i = imax Then MsgBox  liste ,,"Liste du répertoire" &Space(3)& PathMDB 
Next
TriRepertoire = liste

Set fso = nothing 
End Function

A voir également