Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

[VBSCRIPT] LISTE DES FICHIERS, D'UN RÉPERTOIRE, TRIÉS PAR DATE DE MODIFICATION (DU + RÉCENT AU + ANCIEN)


Information sur la source

Catégorie :VBScript Classé sous : vbs, tri, algirithme, fichier, liste Niveau : Débutant Date de création : 29/04/2006 Date de mise à jour : 12/05/2007 15:46:08 Vu : 21 930

Note :
Aucune note

Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

Description

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

  • 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
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

Historique

29 avril 2006 13:47:05 :
comprendre tranlation et non transation !
13 avril 2007 13:31:22 :
salut Julien, Tu as entièrement raison ....Script modifié en conséquence. Dommage (ou heureusement) que l'on ne puisse pas modifier "la bible SCRIPT56.CHM" !!! J'ai acheté récemment le book "Scripting Windows" (Eyrolles). Bonne synthèse de vbs, wsh et wmi. A+. jean-marc
12 mai 2007 15:46:08 :
Entièrement raison avec vous (soldier8514). Je viens de remplacer la version erronée.

Commentaires et avis

signaler à un administrateur
Commentaire de jrivet le 13/04/2007 09:04:31

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


signaler à un administrateur
Commentaire de soldier8514 le 12/05/2007 15:21:24

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  

signaler à un administrateur
Commentaire de soldier8514 le 12/05/2007 15:22:26

tu peus montrer un exemple de projet qui fonctionne avec ce code stp _ car jai un gros doute là ...

signaler à un administrateur
Commentaire de soldier8514 le 12/05/2007 15:41:06

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

signaler à un administrateur
Commentaire de soldier8514 le 12/05/2007 15:42:19

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

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Extraire la liste des section d'un fichier INI [ par imgKappa ] Bonsoir,J'utilise un fichier INI pour mon programme,pas de probleme pour Ecrire/Lire dans le fichier, mon seul soucis est de vouloir charge dans un co VBS : erreur d'initialisation Win32_LogicalFileSecuritySetting [ par opsi1985 ] Bonjour,J'espere que je suis dans le bon theme ....j'utilise cet objet(j'espere que c'est le nom correct ) pour Tri excel impossible [ par vinystic ] Bonsoir à tous,je bloque depuis pls jours sur le tri d'une selection excel.j'ai fait pls recherches mais en vainvoici mon codePrivate<font color="#000 Script VBS uniquement pour télécharger un fichier [ par jeffrey17 ] Bonjour j'espère que quelqu'un pourra m'aider à résoudre ce petit problème.En effet, j'aimerais avoir/savoir quelle code mettre dans une ficher .vbs p Tri alphabétique d'un tableau [ par saiansupacrew59 ] J'ai créé un fichier avec une liste de cd et je visualise cette liste dans un grid que je passe avant dans un tableau. Je souhaite trier cette liste p question sur comment executer une liste de fichier [ par zyriuse ] bonjour je viens de trouver plein de fichier ki me serais tres utiles pour mon office 2003 c est fichier cree une barre de racourcis comme cel de offi Stocker et copier un fichier binaire [ par poiuytrez3 ] Bonjour,Je suis en train de créer un script vbs.Voici mon problème:Je dois stocker un fichier binaire en dur dans mon programme vbs puis écrire ce fic Changer Extensions [ par lilsgabbg ] bonjour à tous, hello world,je voudrais savoir comment puis-je convertir un fichier par exemple en vbs (fichier.vbs) en fichier texte (fichier.txt) ou fichier introuvable en vbs [ par gab57 ] Bonjour,J'ai besoin d'aide, si quelqu'un peut m'aider, je l'en remercie d'avance.Voici mon probleme :Je recupère dans un script le nom d'un fichier (e Liste de données à partir d'un autre fichier Excel [ par M0rphine ] Bonjour à tous,Je cherche actuellement à créer deux listes déroulantes dont les infos sont tirées d'un autre fichier excel.Je crée mes deux ComboBox,


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,359 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.