[VBSCRIPT] LISTE DES FICHIERS, D'UN RÉPERTOIRE, TRIÉS PAR DATE DE MODIFICATION (

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 - 13 avril 2007 à 09:04
soldier8514 Messages postés 295 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 24 janvier 2014 - 12 mai 2007 à 15:42
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/37322-vbscript-liste-des-fichiers-d-un-repertoire-tries-par-date-de-modification-du-recent-au-ancien

soldier8514 Messages postés 295 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 24 janvier 2014 1
12 mai 2007 à 15:42
voilà la version corrigée :

dim imax

'....
'....


Function ShowFolderList()


Dim fso, fichier, strListe, r
Dim Valeur, z, Cible, liste
Set fso = CreateObject("Scripting.FileSystemObject")

imax = 0
For Each fichier In fso.GetFolder(strPath).Files
imax = imax + 1
ReDim Preserve Tableau(2, imax)
Tableau(1, imax) = fichier.Name
Tableau(2, imax) = fichier.DateLastModified

Valeur = 0
For i 1 To i (imax - 1)
If CDate(Tableau(2, imax)) < CDate(Tableau(2, imax + 1)) Then
For z = 1 To 2
Cible = Tableau(z, imax)
Tableau(z, imax) = Tableau(z, imax + 1)
Tableau(z, imax + 1) = Cible
Next
Valeur = 1
End If
Next
Next

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Affichage du résultat des fichiers triés par date de modification
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
liste = ""
For r = 1 To imax
liste = liste & vbCrLf & r & " " & Tableau(2, r) & " " & Tableau(1, r)
Next
liste = vbCrLf & "N° Date de modification Nom du fichier" & vbCrLf & liste
ShowFolderList = liste

Set fso = Nothing
End Function
soldier8514 Messages postés 295 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 24 janvier 2014 1
12 mai 2007 à 15:41
ok _ j'ai trouvé pkoi ça marche pas _ l'algo avait mal été retranscrit

il faut remplacer
For imax = 1 To imax - 1

par
For i 1 To i (imax - 1)

ensuite si vous utilisez path alors ce paramètre d'entrée est à supprimer puisqu'il ne sert jamais : strPath

ensuite si vous voulez lister le contenu du tableau dans un composant queconque ( combo , listbox etc ... ) il vaut mieux déclarer la variable imax en tant que variable globale ( la sortir de la fonction ShowFolderList
soldier8514 Messages postés 295 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 24 janvier 2014 1
12 mai 2007 à 15:22
tu peus montrer un exemple de projet qui fonctionne avec ce code stp _ car jai un gros doute là ...
soldier8514 Messages postés 295 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 24 janvier 2014 1
12 mai 2007 à 15:21
j'ai testé _ ça affiche dans le désordre (testé avec 30 images enregistrée sur le disque dur à 5 secondes d'intervalle chacune ) _ conclusion : ya un tres gros bug dans ce code
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
13 avril 2007 à 09:04
Salut JMO,

J'ai vu ce lien sur une page du forum alors je viens voir.
J'ai juste une petite suggestion. Pourquoi utiliser des variables qui n'ont pas forcément lieu d'être,
Je pense par exemple Dossier, à fic et a f.
Je m'explique
On peu très bien mettre
For Each fichiers In fso.GetFolder(Path).Files

je suis d'accord avec toi, c'est peu être moins lisible, et moins simple à comprendre.

En revanche ce dont je suis sur c'est que f ne sert strictement à rien puisque fichiers represente déjà f donc

Set f = fso.GetFile(fichiers) est inutile

Enfin ceci est juste mon avis (personnel qui n'engage que moi) :)

@ller à plus sur le forum.
Julien
Rejoignez-nous